Могу ли я использовать другой корневой элемент на странице HTML?
Из любопытства я читал статью " Декларация типа документа" в Википедии, когда обнаружил роль HTML
в объявлении DOCTYPE:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
Согласно Википедии, первый атрибут HTML
является корневым элементом документа и, следовательно, должен быть открыт первым.
... в XHTML корневой элемент
<html>
, будучи первым открытым элементом (после объявления doctype) и последним закрытым.
Поэтому мне было интересно, если бы я структурировать документ так:
<!DOCTYPE burrito PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<burrito>
<head></head>
<body>
A burrito is a great way to wrap a webpage.
</body>
</burrito>
будет ли веб-браузер потреблять мой <burrito>
или завернуть в <html>
тег?
2 ответа
Ответ на вопрос в заголовке "Нет", потому что все спецификации HTML определяют html
элемент в качестве корневого элемента. Вопрос о том, какие браузеры могут обрабатывать ошибки и почему, когда вы нарушаете это, не особенно интересен, и следует ожидать различий между браузерами.
В любом случае, фальшивый doctype
заставляет браузеры переходить в режим Quirks, и это не имеет смысла, так как браузеры не заботятся о doctype
За исключением режима "Причуды", "Режима стандартов" или какого-либо промежуточного режима. Они даже не читают упомянутое определение типа документа, поэтому они не обнаружат несоответствие.
Это будет завернуто в <html>
, Как это:
<!DOCTYPE burrito PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>....</head>
<body>
<burrito>
A burrito is a great way to wrap a webpage.
</burrito>
</body>
</html>