Чи потрібна Doctype для документів HTML5


12

Нещодавно у мене було співбесіду на роботі, і одне із запитань було «Чи потрібна доктіпа для документів HTML 5?». Я відповів «ні», але маю відчуття, що я можу помилитися. З w3 виглядає, що це абсолютно потрібно, але якщо я введіть простий HTML, як

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

збережіть його як HTML і спробуйте відкрити в Chrome - він буде працювати чудово, з новим кольором (вимкнено). Цей вхід - HTML5, а також атрибут.

Отже, питання - чи потрібно вказувати доктрип чи ні? Яка б була правильна відповідь на співбесіду?


1
Я думаю, ви можете стверджувати, що без Doctypeелемента це не документ HTML5.
MetaFight

Ви можете ввести hello worldтекстовий редактор, зберегти його як HTML, і він відображатиметься в Chrome. Виявляється, Chrome (та багато інших веб-переглядачів) додають вам речі, навіть якщо це "потрібно".
intcreator

Відповіді:


14

Правильна відповідь була б "Це залежить".

DOCTYPE необов'язковий для документів HTML5 у синтаксисі XHTML (тобто, документів XHTML5):

Документи XML можуть містити DOCTYPE за бажанням, але це не потрібно, щоб відповідати цій специфікації.

Для документів HTML5 у синтаксисі HTML необхідний DOCTYPE :

Документи повинні складатися з таких частин у вказаному порядку:

[…]

3. ДОКТИП.

Винятки


1
Це повна відповідь, якщо "потрібно" трактується як "вимагається специфікаціями". Це також можна трактувати як посилання на практичні наслідки. У такому випадку відповідь полягатиме в тому, що в синтаксисі HTML необхідний рядок doctype, щоб перевести браузери в "стандартний режим".
Jukka K. Korpela

Мені б хотілося, щоб ця відповідь була кращою, якщо ви докладно пояснили, коли документ є html vs xhtml. Що це означає для браузерів - як вони вирішили, з яким синтаксисом оцінити?
тимчасовий_користувач

7

Я теж мав би відповідь "ні" (неправильно, як це відбувається).

Проте http://www.w3.org/TR/html5/syntax.html#the-doctype говорить:

8.1.1 ДОКТИП

DOCTYPE - обов'язкова преамбула.

DOCTYPE потрібні з застарілих причин. У разі пропуску браузери, як правило, використовують інший режим візуалізації, несумісний з деякими специфікаціями. Включення DOCTYPE в документ гарантує, що веб-переглядач робить все можливе, щоб дотримуватися відповідних специфікацій.

BTW, GIYF


1
Цитувана частина стосується лише синтаксису HTML.
Юкка К. Корпела

І заголовок питання "Чи потрібний Doctype для документів HTML5" (QED).
Мауг каже, що повернемо Моніку

1
Специфікація HTML5 чітко і помітно говорить про те, що вона визначає два синтаксиси для HTML5, один на основі оригінального HTML і один повністю відповідає XML. Те, що ви цитуєте, не відповідає на запитання, оскільки воно стосується лише одного із синтаксисів.
Юкка К. Корпела

Ах! Нарешті я розумію. Дуже дякую за роз’яснення.
Мауг каже, що повернемо Моніку

2

Якщо ви хочете написати документ w3c, що відповідає стандарту HTML5, тоді <!DOCTYPE html>це потрібно.

Але на практиці вам не завжди потрібен доктіп, тому що будь-який звичайний веб-браузер надасть ваш документ незалежно. Однак деякі веб-переглядачі використовуватимуть застарілий режим, у якому деякі функції не трактуються правильно, а натомість попередньою версією браузера керується ним (більшість з них стосується макета).

Яка відповідь підходить для цього інтерв'ю ? Це залежить від менталітету людини, яка опитувала вас. У співбесіді з роботою не має значення, прав ви чи не прав. Важливо лише те, яке враження ви справляєте на інтерв'юера.


Для мене цікаве питання: чи потрібний DOCTYPE HTML5 на практиці в 2020 році? Що роблять нинішні веб-переглядачі (FF, Chrome, Edge), якщо я опустив його, щоб зробити код HTML-5 сумісним?
Логіка Пану
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.