Domanda

  • Che cos'è DOCTYPE e perché voglio usarlo?
  • Quali sono i diversi DOCTYPE che posso usare?
  • Qual è la differenza tra standard e modalità stranezze e quali sono alcune stranezze che posso incontrare con DOCTYPE impostati in modo diverso?

Infine, qual è il DOCTYPE corretto che dovrei usare?

È stato utile?

Soluzione

Fondamentalmente, DOCTYPE descrive l'HTML che verrà utilizzato nella tua pagina.

I browser usano anche DOCTYPE per determinare come eseguire il rendering di una pagina. Non includere un DOCTYPE o includere un DOCTYPE errato può attivare la modalità stranezze. Il kicker qui è che la modalità stranezze in Internet Explorer è abbastanza diversa dalla modalità stranezze in Firefox (e altri browser), il che significa che avrai un lavoro molto più difficile cercando di garantire che la tua pagina funzioni in modo coerente in tutti browser se le pagine sono visualizzate in modalità strane rispetto a come faresti se sono visualizzate in modalità standard.

Wikipedia ha un sommario più approfondito delle differenze di rendering quando si usano vari DOCTYPE . XHTML è abilitato da alcuni doctypes e c'è un bel po 'di dibattito sull'uso di XHTML che è ben coperto in XHTML & # 8201; & # 8212; & # 8201; miti e realtà .

Esistono sottili differenze tra i diversi " reclamo sugli standard " rendering di tipi di documento, come HTML5 doctype (<!DOCTYPE html>, prima di HTML5 noto solo come " skinny doctype " che non attivano il rendering standardizzato nei browser meno recenti) e altri DOCTYPE come questo per HTML 4.01 di transizione:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

Altri suggerimenti

DOCTYPE indica al programma utente utente (browser Web, crawler Web, strumenti di convalida) che tipo di documento è il file. Il suo utilizzo garantisce che il consumatore analizzi correttamente l'HTML come previsto.

Esistono diversi DOCTYPES diversi per HTML, XHTML e Frameset e ognuno di questi ha due modalità Strict e Transitional. Rigido afferma che il tuo markup sta usando esattamente gli standard definiti. Vedi DTD W3C per ulteriori dettagli.

Quirksmode è fondamentalmente il metodo di layout dei giorni di guerra del browser in cui gli standard erano molto meno rispettati e definiti. Generalmente una pagina in modalità standard, che è valida, impaginerà in modo più coerente su vari browser, ma potrebbe non disporre di alcune funzionalità richieste. Una di queste caratteristiche è l'attributo target del tag anchor. Il sito Quirksmode è un'ottima risorsa per queste differenze.

Un ultimo pensiero è che il nuovo standard HTML5 propone di utilizzare un DOCTYPE molto semplice:

  

<!DOCTYPE html>

L'uso di questo DOCTYPE è un modo compatibile in avanti per specificare che le tue pagine sono in modalità standard e sono HTML. Questo è il metodo utilizzato da Google ed è ragionevolmente facile da ricordare. Consiglio di utilizzare questo DOCTYPE a meno che non preveda di utilizzare XHTML.

Un tipo di documento definisce la versione di HTML / XHTML utilizzata dal documento. Si desidera utilizzare un doctype in modo che quando si esegue il codice tramite validatori, i validatori sappiano su quale versione di HTML / XHTML verificare. Questa pagina offre una buona panoramica:

Non dimenticare di aggiungere un tipo di documento

I comuni tipi di documenti che è possibile utilizzare sono elencati qui:

Elenco raccomandato di DTD

Il tipo di documento da utilizzare dipende dal codice che stai utilizzando, ma per avere un'idea, prova a eseguire il codice tramite il validatore W3C e utilizza il menu a discesa Tipo di documento nel " Altre opzioni " menu per provare diversi tipi di documenti.

Servizio di convalida markup W3C

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 , tranne che in 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 i DOCTYPE anche in altri modi, ma a quanto pare la domanda è 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> come definito in HTML5 , sebbene HTML5 elenchi anche alcuni & # 8220; DOCTYPE legacy & # 8221 ;. Puoi usare quel DOCTYPE se vuoi la modalità standard (consigliato per nuove pagine) e non usare DOCTYPE se vuoi la modalità stranezze (che potresti aver bisogno per le pagine legacy).

& # 8220; Modalità standard & # 8221; generalmente indica la modalità di funzionamento in cui un browser segue HTML, CSS, DOM e altre specifiche nel miglior modo possibile. Di solito non significa piena conformità. & # 8220; Modalità strane & # 8221; è diverso nei diversi browser, ma generalmente significa tentare di imitare il comportamento di browser molto vecchi come IE 5. Lo scopo è quello di far funzionare le vecchie pagine, supponendo che possano fare affidamento su funzionalità e bug nei vecchi browser. Vedi la descrizione Che cosa succede nella modalità Quirks? Nota che esiste un concetto piuttosto diverso, più limitato di & # 8220; modalità strane & # 8221; 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 le nuove pagine e conservare qualunque DOCTYPE (se presente) che hai usato per le 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.

I tipi di documento indicano al browser in quale lingua è scritta la pagina, sia essa HTML o XHTML. Ad esempio,

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"
    "http://www.w3.org/TR/html4/strict.dtd">

indica al browser di eseguire il rendering della pagina come HTML4 strict. I browser precedenti utilizzavano il rendering delle pagine in modo errato e quindi i browser più recenti simulano gli errori dei browser più vecchi quando trovano un vecchio tipo di documento.

Oggi dovresti usare almeno HTML4 o XHTML migliore.

Un post di blog sui doctypes è Correggi il tuo sito con il DOCTYPE giusto! (da A List Apart ).

Prima di tutto non c'è un solo tipo di documento che dovresti usare, ma la maggior parte dei designer cerca di farlo funzionare all'interno di XHTML 1.0 Strict.

Un doctype non è altro che una dichiarazione di quali tag puoi usare nel tuo html (anche se i browser possono usare più o meno di quanto definito) Puoi effettivamente aprire il file doctype e iniziare a leggere ( XHTML 1.0 Strict )

Se non specifichi un tipo di documento, il browser farà del suo meglio per indovinare ma non colpisce sempre il tipo corretto.

La modalità Quirks è solo una tecnica utilizzata dai browser per essere retrocompatibile, un ottimo esempio di modalità strane è come IE rende le caselle

Sul Web, un doctype non fa altro che dire al browser se si desidera la modalità standard, quasi standard o stranezze.

Ciò che cambia in modalità strane dipende dal browser: Firefox, Opera, Safari e Chrome implementano un numero limitato di stranezze, come rimuovere lo spazio per i discendenti di testo in codice come <table><tr><td><img></td></tr></table> (soluzione: td img { vertical-align:bottom; }). IE, d'altra parte, ritorna al motore di rendering in IE5.5. Ciò significa che non sarai in grado di utilizzare nessuna delle nuove funzionalità implementate dal 2000.

Per attivare la modalità standard, suggerisco di utilizzare il doctype HTML5, <doctype html>, poiché è il più facile da ricordare.

Un doctype è un documento che descrive come possono apparire i contenuti di un documento simile a xhtml (come una pagina Web). Nota: questo definisce solo la sintassi di detta pagina, il rendering della pagina NON è definito dal DTD!

Ad esempio, un tipo di documento potrebbe definire l'aspetto del tag <table> - quali attributi accetta e quali valori / tipi di valore sono accettati per ogni attributo. Pensalo come un lessico per la tua pagina web attuale.

Wikipedia ha una pagina informativa sui vari Doctype di uso comune. Intendiamoci, non c'è niente che ti impedisce di creare il tuo documento personale. È probabile, tuttavia, che il browser probabilmente non sappia come eseguire il rendering del documento.

Quale DTD da usare dipende da cosa stai per scrivere. XHTML ha un DTD completamente diverso rispetto all'HTML, per esempio.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top