Почему браузеры анализируют пользовательские теги в HTML5?
Возможный дубликат:
Можно ли использовать неизвестные теги HTML?
Я проверил пользовательский тег <oles-tag> ... </oles-tag>
в Chrome и IE9.
Я использую HTML5 doctype <!DOCTYPE html>
,
HTML5 НЕ поддерживает пользовательские теги. Код не будет проверяться, но браузеры все равно его анализируют. Я могу даже нацелиться на это с помощью CSS...
Почему браузеры анализируют пользовательские теги, если они не стандартизированы действительным кодом?
И почему я не должен просто использовать пользовательские теги для семантического кода?
2 ответа
Почему браузеры анализируют пользовательские теги, когда это не стандартизированный и допустимый код?
Чтобы сделать его совместимым с форвардом. Представьте себе, если бы это было невозможно для вас, чтобы стиль <article>
элементы в старых браузерах, потому что <article>
не существовало, когда были написаны эти старые браузеры. Это было бы ужасно, не так ли? смотрит на IE
И почему я не должен просто использовать пользовательские теги для семантического кода?
Потому что никто другой (программы) не распознает эти теги, поэтому они не семантические. Причина, почему элементы как <article>
считаются семантическими, потому что они имеют устоявшееся использование. Когда вы используете пользовательский элемент, который не имеет установленного использования, его можно интерпретировать несколькими способами, что приводит к несогласованности между программами. смотрит на <b>
а также <i>
Браузеры, как правило, снисходительны к разметке. Это частично исторически связано с трудностями при принятии сложного синтаксиса SGML.
В конце 90-х годов произошло движение к строгости, результатом которого стало создание XHTML, где каждая ошибка приводит к катастрофической неудаче. Если вы предпочитаете строгость, похоже, существует версия XHTML, адаптированная для HTML5.
XHTML имеет еще одну интересную особенность - вы можете определять и использовать пользовательские теги, сколько хотите, на самом деле это было одной из двух основных причин его разработки.