Подтвердить что ты не робот

Должен ли мой тип HTML5 быть в ОЧЕНЬ первой строке?

Я всегда задавался вопросом, есть ли whitespace перед вопросом DOCTYPE, но я не могу найти какую-либо окончательную информацию в Интернете. Люди говорят, что не делать этого, но я не могу понять, какой эффект он может иметь, или даже если спецификация говорит, что это должно быть так. Я не могу понять, запускает ли он режим совместимости в IE или что-то такое раздражающее.

Причина в том, что в моем коде (crappy asp.net) я бы предпочел написать:

<%@ Page language="c#" Codepage="65001" AutoEventWireup="true" %>
<%@ OutputCache Location="None" VaryByParam="none" %>
<!doctype html>

чем:

<%@ Page language="c#" Codepage="65001" AutoEventWireup="true" %><%@ OutputCache Location="None" VaryByParam="none" %><!doctype html>

Потому что первый - опрятный. Но результатом верхней является несколько пустых строк в вашем рендерированном html.

Не большая проблема. Я всегда задавался вопросом, важно ли это:)

4b9b3361

Ответ 1

Если вы хотите получить официальный ответ, перейдите к официальным документам W3C и прочитайте о синтаксисе.

Комментарии и пробелы могут быть первыми.

Здесь ссылка: http://www.w3.org/TR/html-markup/documents.html#conformant-documents.

Ответ 2

Есть случайные браузеры, у которых есть проблемы с пробелами перед doctype - классическим примером был IE6, который, как говорили, входил в режим причуд при его просмотре. Оказывается, это справедливо только для некоторых очень специфических типов пробелов (например, непробиваемых пространств, например, nbsp). Тем не менее, совместимость с IE6 невелика в списках приоритетов большинства людей.

Ответ 3

Чтобы максимизировать шансы избежать режима Quirks, поместите объявление doctype в самом начале документа HTML. Вы не найдете официального заявления об этом, так как режим Quirks Mode - это нарушение стандартов и фактическое поведение браузера. Это часть самой идеи режима Quirks, которая в значительной степени недокументирована; авторы не должны доверять этому. Это означает, что старые страницы ведут себя сдержанно (как они привыкли), а не то, что вы должны использовать для новых страниц.

Современные браузеры обычно допускают пустую строку перед doctype, или комментарий, или декларацию XML, не переходя в режим Quirks. Но просто не помещайте там ничего, если у вас нет веских оснований для этого.

Ответ 4

Обратите внимание, что спецификация HTML, связанная с Ray, неверна. В то время как перед DOCTYPE разрешены пробелы, в спецификации указывается, что также комментарии могут появляться перед DOCTYPE. Но это не работает в Internet Explorer 9 и старше.

Ответ 5

Нет, Doctype не обязательно должна быть первой строкой файла, но должна присутствовать перед тегом <html>.. Это единственный предел, который у вас есть, поэтому ваш первый способ сделать это в порядке.

Объявление должно быть самым первым в вашем документе HTML перед тегом.

Отказывается от: w3 школы (доктрисы)