Вопрос по html, asp.net, html5-video, doctype – Должен ли мой HTML5-тип документа быть в ОЧЕНЬ первой строке?

25

Я всегда задавался вопросом,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.

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

У меня похожая ситуация:<metal:page define-macro="master"> <tal:doctype tal:replace="structure string:&lt;!DOCTYPE html&gt;" /> Falk

Ваш Ответ

5   ответов
1

Doctype не обязательно должен бытьfirst line of the file но этоdoes have to come before the <html> tag. Это единственное ограничение, которое у вас есть, поэтому ваш первый способ сделать это хорошо.

The declaration must be the very first thing in your HTML document, before the tag.

Gotten from: w3 schools (doctypes)

спасибо за ссылку, никогда не знал, что раньше.
w3schools не заслуживает доверия.Despite the name, it has nothing to do with the W3C.
4

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

Я должен серьезно усомниться в логике «Версии браузера X не поддерживают это». и "Спецификация неверна". В частности, как «спецификация HTML, на которую ссылается Рэй»; это спецификация w3.org ...
@KristianGlass: Может быть, я должен был сформулировать это не так, как "неправильно". Возможно & quot; бесполезно для веб-разработчика & quot; лучше. Но это не меняет того, что если вы просто доверяете спецификации, вы можете в итоге создать что-то, что не работает в браузере, который вам, возможно, придется поддерживать.
24

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

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

Вот ссылка:http://www.w3.org/TR/html-markup/documents.html#conformant-documents.

Кажется, переехали вw3.org/TR/2012/WD-html-markup-20121025/…
ура приятель, это то, что я искал. душевное спокойствие :) приму, как только позволит. captainclam
4

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

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

8

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

Похожие вопросы