http://www.communitymx.com/content/article.cfm?cid=85feeWhat does a correct doctype look like?A complete doctype tells us first that it is a doctype and what kind of document to expect. Then it also contains a public identifier and a system identifier, sometimes referred to as "with URI" or "with address."
Start: <!DOCTYPE HTML PUBLIC
Public identifier: "-//W3C//DTD HTML 4.01//EN"
System identifier: "http://www.w3.org/TR/html4/strict.dtd">
Fajna tabelka:
http://hsivonen.iki.fi/doctype/1.] Teraz sobie popatrz na: <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> wszystko quirks (tryb kompatybilności z IE). Czyli mógłbyś tego doctype tak na prawdę nie deklarować bo przeglądarki tego nie rozpoznają,
źle zadeklarowany doctype. (prawy myszy w firefoxie - widzisz tryb wstecznej zgodności)
2.] Zamiast tego musisz użyć:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
W wszystkich przeglądarkach rozpoznawany jako HTML 4.01 Strict.
Dobrze zadeklarowany doctype. (prawy myszy w firefoxie - widzisz tryb standardów)
3.] <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN">
To przeglądarki rozpoznają jako STRICT, więc jeśli w przykładzie 2 zamienisz swój doctype na
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
to na 100% zobaczysz, że HTML i XHTML się renderują dokładnie tak samo (jeśli tylko doctype zadeklarujesz tak jak "chcą" przeglądarki).
Po prostu trzeba się upewnić czy doctype jest prawidłowo rozpoznawany przez przeglądarki podczas deklaracji.