Le guide:  Html |  Css |  Javascript |  Php |  Photoshop
Tutorial Html n°1 - del 25-03-2004

Doctype e quirk mode

I documenti SGML (Standard Generalized Markup Language) devono conformarsi ad una DTD (Document Type Definition). Il W3C consortium, per gli standard web, ha definito l'HTML, a partire dalla versione 3.2, come un'applicazione SGML che, pertanto, deve rientrare negli standard internazionali ISO 8879. La DTD di un documento ne definisce i marcatori e la sintassi, ragione per cui una pagina HTML deve contenere un <!DOCTYPE> (o Document Type Declaration) per essere valida. Esistono diversi tipi di doctype ed in ognuno di essi è contenuta la versione ed la DTD cui la pagina è conforme.

Questo è il doctype di questa pagina:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">

riconosciamo subito la DTD seguita dalle versione dell'HTML utilizzato, nella parte finale abbiamo "Transitional", questa è la definition del documento.

Esistono diverse definition:

- Strict: esclude gli elementi di presentazione per tag ed attributi che vengono affidati ai CSS;

- Transitional: comprende tag ed attributi "deprecati" a carattere presentazionale, risulta pertanto la più permissiva;

- Frameset: viene utilizzato quando una pagina viene suddivisa in frames, al posto dell'elemento body si trova l'elemento frameset, ma per il resto è identica alla Definition Transitional.


Tabella riassuntiva DTD:
VersioneDoctype
HTML 2.0 <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
HTML 3.0 <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 3.0//EN//">
HTML 3.2<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN" "http://www.w3.org/TR/REC-html32">
HTML 3.2 + URI <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
HTML 4.0 Strict <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
HTML 4.0 Strict + URI <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
HTML 4.0 Transitional <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
HTML 4.0 Transitional + URI <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
HTML 4.0 Frameset <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Frameset//EN">
HTML 4.0 Frameset + URI <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Frameset//EN" "http://www.w3.org/TR/REC-html40/frameset.dtd">
HTML 4.01 Strict <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
HTML 4.01 Strict + URI <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
HTML 4.01 Transitional <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
HTML 4.01 Transitional + URI <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
HTML 4.01 Frameset <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN">
HTML 4.01 Frameset + URI <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN" "http://www.w3.org/TR/html4/frameset.dtd">
XHTML 1.0 Strict <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN">
XHTML 1.0 Strict + URI <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
XHTML 1.0 Transitional <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN">
XHTML 1.0 Transitional + URI <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
XHTML 1.0 Frameset <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN">
XHTML 1.0 Frameset + URI <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd">
XML + XHTML 1.0 Strict <?xml version="1.0" encoding="iso-8859-1"?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN">
XML + XHTML 1.0 Strict + URI <?xml version="1.0" encoding="iso-8859-1"?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
XML + XHTML 1.0 Transitional <?xml version="1.0" encoding="iso-8859-1"?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN">
XML + XHTML 1.0 Transitional + URI <?xml version="1.0" encoding="iso-8859-1"?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
XML + XHTML 1.0 Frameset <?xml version="1.0" encoding="iso-8859-1"?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN">
XML + XHTML 1.0 Frameset + URI <?xml version="1.0" encoding="iso-8859-1"?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd">
XHTML Basic 1.0 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML Basic 1.0//EN""http://www.w3.org/TR/xhtml-basic/xhtml-basic10.dtd">
XML + XHTML Basic 1.0 <?xml version="1.0" encoding="uft-8"?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML Basic 1.0//EN""http://www.w3.org/TR/xhtml-basic/xhtml-basic10.dtd">
XHTML 1.1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
XML + XHTML 1.1 <?xml version="1.0" encoding="uft-8"?> < !DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
WML 2.0 <!DOCTYPE HTML PUBLIC "-//WAPFORUM//DTD WML 2.0//EN" "http://www.wapforum.org/DTD/wml20.dtd">





Quirk mode

Con l'uscita di Internet Explore 5 viene data la possibilita di scegliere se far lavorare il browser in modalità standard o retrocompatibile (quirk) a seconda del Doctype utilizzato, le modalità di utilizzo sono:

- standard
- quirk o retrocompatibile;
- almost standard, introdotto con Mozilla release 1.1 e Netscape 7.



Tabella riassuntiva :
DoctypeIE5.XIE 6.xMozillaMozilla 1.1 in su
HTML 2.0QuirkQuirkQuirkQuirk
HTML 3.0QuirkQuirkQuirkQuirk
HTML 3.2QuirkQuirkQuirkQuirk
HTML 4.0 StrictStandardStandardStandardStandard
HTML 4.0 TransitionalQuirkQuirkQuirkQuirk
HTML 4.0 FramesetQuirkQuirkQuirkQuirk
HTML 4.01 StrictStandardStandardStandardStandard
HTML 4.01 TransitionalQuirkQuirkQuirkQuirk
HTML 4.01 FramesetQuirkQuirkQuirkQuirk
XHTML 1.0 StrictStandardStandardStandardStandard
XHTML 1.0 TransitionalStandardStandardStandardStandard
XHTML 1.0 FramesetStandardStandardStandard(A)Standard
XML + XHTML 1.0 StrictStandardQuirkStandardStandard
XML + XHTML 1.0 TransitionalStandardQuirkStandard(A)Standard
XML + XHTML 1.0 FramesetStandardQuirkStandard(A)Standard
XHTML Basic 1.0StandardStandardStandardStandard
XML + XHTML Basic 1.0 StandardQuirkStandardStandard
XHTML 1.1StandardStandardStandardStandard
XML + XHTML 1.1StandardQuirkStandardStandard
XMLStandardStandardStandardStandard

Legenda: (A)standard - almost standard.




Ripropongo questo utile test, nella versione originale, trovato sul sito Html.it. Il JavaScript restituirà una finestra di alert con valore la scritta "strict=true" se il browser funziona in modalità Standard, oppure "strict=false" se il browser funziona in modalità Quirk.
Fonte [HTML.it]


torna all'indice