In HTML (incluso XHTML) utilizzato nelle pagine Web, DOCTYPE è una stringa che attiva una delle poche modalità del browser (modalità stranezze, modalità standard, quasi standard), a seconda dell'ortografia esatta di DOCTYPE. Vuoi usarlo per selezionare una modalità browser più adatta alla tua pagina.
Formalmente, in SGML e XML, una dichiarazione DOCTYPE è un riferimento a una definizione del tipo di documento (DTD), che specifica le regole formali di sintassi del linguaggio di markup. Nessun browser ha mai usato DTD per nulla o addirittura vi ha avuto accesso. Tuttavia, vengono utilizzati dai validatori di markup SGML e XML come W3C Markup Validator , ad eccezione della modalità HTML5. Pertanto, la scelta di DOCTYPE determina il funzionamento di un validatore se il documento gli viene inviato. Tuttavia, la modalità operativa del validatore può anche essere selezionata nella sua interfaccia utente. (I processori SGML e XML possono usare DOCTYPE anche in altri modi, ma apparentemente la domanda è intesa come limitata al contesto HTML, ai browser Web e al software strettamente correlato.)
Non esiste un elenco autorevole di DOCTYPE. Ogni specifica o bozza HTML definisce i propri DOCTYPE o DOCTYPE. L'insieme di DOCTYPE riconosciuti dai browser quando si seleziona la modalità varia in base al browser. In pratica, non vi è alcun motivo per utilizzare un DOCTYPE diverso da <DOCTYPE html>
quello definito in HTML5 , sebbene HTML5 elenchi anche alcuni "DOCTYPE legacy". È possibile utilizzare quel DOCTYPE se si desidera la modalità standard (consigliata per nuove pagine) e non utilizzare DOCTYPE se si desidera la modalità stranezze (che potrebbe essere necessaria per le pagine legacy).
"Modalità standard" indica generalmente la modalità operativa in cui un browser segue HTML, CSS, DOM e altre specifiche nel miglior modo possibile. Di solito non significa piena conformità. La "modalità Quirks" è diversa nei diversi browser, ma in genere significa un tentativo di imitazione del comportamento di browser molto vecchi come IE 5. Lo scopo è di far funzionare le vecchie pagine, supponendo che possano fare affidamento su funzionalità e bug nel vecchi browser. Vedi la descrizione Cosa succede in Modalità strane? Si noti che esiste un concetto piuttosto diverso e più limitato di "modalità strane " in HTML5, che ricorda da vicino il documento chiamato Quirks Mode Living Standard .
Un problema tipico è che le larghezze degli elementi sono calcolate in modo diverso in modalità stranezze e in modalità standard. Ciò significa che il layout di una pagina può essere più o meno modificato o addirittura completamente incasinato, se una pagina progettata per funzionare in modalità strane è visualizzata in modalità standard (o viceversa).
Quindi dovresti usare <!DOCTYPE html>
per nuove pagine e conservare qualunque DOCTYPE (se presente) che hai usato per vecchie pagine.
Tuttavia, la modalità Quirks significa, in alcuni browser, che molte nuove funzionalità di CSS non sono supportate. Ciò significa che se si desidera migliorare una vecchia pagina con alcune funzionalità CSS3, potrebbe essere necessario passare a un DOCTYPE che attiva la modalità standard. In tal caso, è necessario rivedere e testare la pagina per vedere se verrà eseguita in modalità standard.