Doctype è necessario per i documenti HTML5


12

Recentemente ho avuto un colloquio di lavoro e una delle domande era "È necessario doctype per i documenti HTML 5?". Ho risposto "no" ma ho la sensazione che potrei sbagliarmi. Dal w3 sembra che sia assolutamente necessario, ma se scrivo un semplice HTML come

<html>
    <body>
        <input type="color" disabled/>
    </body>
</html>

salvalo come HTML e prova ad aprirlo in Chrome: funzionerebbe perfettamente, con un nuovo input di colore (disabilitato). Tale input è HTML5 oltre che attributo.

Quindi la domanda è: devo specificare doctype o no? Quale sarebbe la risposta corretta per l'intervista?


1
Immagino che potresti obiettare che senza l' Doctypeelemento non è un documento HTML5.
MetaFight,

Puoi digitare hello worldun editor di testo, salvarlo come HTML e verrà visualizzato in Chrome. Si scopre che Chrome (e molti altri browser) mettono cose per te, anche se sono "obbligatorie".
creatore

Risposte:


14

La risposta corretta sarebbe "Dipende".

Un DOCTYPE è facoltativo per i documenti HTML5 nella sintassi XHTML (ovvero documenti XHTML5):

I documenti XML possono contenere un DOCTYPE se lo si desidera, ma ciò non è necessario per conformarsi a questa specifica.

È richiesto un DOCTYPE per i documenti HTML5 nella sintassi HTML :

I documenti devono essere composti dalle seguenti parti, nell'ordine indicato:

[...]

3. UN DOCTYPE.

eccezioni


1
Questa è la risposta completa se "è necessario" è interpretato come "è richiesto dalle specifiche". Potrebbe anche essere interpretato come riferito a effetti pratici. In tal caso, la risposta sarebbe che è necessaria una stringa doctype nella sintassi HTML per mettere i browser in "modalità standard".
Jukka K. Korpela,

Vorrei che questa risposta fosse migliore se avessi chiarito quando un documento è html vs xhtml. Che cosa significa questo per i browser: come hanno deciso con quale sintassi valutare?
temporaneo

7

Anch'io avrei risposto "no" (a torto, come succede).

Tuttavia, http://www.w3.org/TR/html5/syntax.html#the-doctype dice:

8.1.1 Il DOCTYPE

Un DOCTYPE è un preambolo richiesto.

I DOCTYPE sono richiesti per motivi legacy. Se omessi, i browser tendono a utilizzare una modalità di rendering diversa che è incompatibile con alcune specifiche. L'inclusione del DOCTYPE in un documento garantisce che il browser faccia il possibile per seguire le specifiche pertinenti.

A proposito, GIYF


1
La parte citata si applica solo alla sintassi HTML.
Jukka K. Korpela,

E il titolo della domanda è "È necessario Doctype per i documenti HTML5" (QED).
Mawg dice di ripristinare Monica il

1
La specifica HTML5 afferma chiaramente e chiaramente che definisce due sintassi per HTML5, una basata sull'HTML originale e una completamente conforme all'XML. Quello che citi non risponde alla domanda, poiché si applica solo a una delle sintassi.
Jukka K. Korpela,

Ah! Finalmente capisco. Grazie mille per il chiarimento.
Mawg dice di ripristinare Monica il

2

Quando si desidera scrivere un documento HTML5 conforme allo standard w3c, <!DOCTYPE html>è necessario.

Ma in pratica non hai sempre bisogno di un tipo di documento perché qualsiasi browser web comune renderà il tuo documento a prescindere. Tuttavia, alcuni browser useranno quindi una modalità legacy in cui alcune funzionalità non sono interpretate correttamente e invece in un modo in cui una versione precedente del browser lo ha gestito (la maggior parte delle quali relative al layout).

Quale risposta è giusta per questa intervista ? Dipende dalla mentalità della persona che ti ha intervistato. In un colloquio di lavoro non importa se hai ragione o torto. Importa solo l'impressione che fai sull'intervistatore.


La domanda interessante per me è: il DOCTYPE HTML5 è richiesto nella pratica nel 2020? Che cosa fanno gli attuali browser (FF, Chrome, Edge) se lo ometto e rendo conforme il codice HTML-5?
Panu Logic
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.