Использование собственных тегов хорошо работает до определенного момента, и это звучит заманчиво. Однако вы не добавляете никакого значения (семантики) таким образом; выдуманный тег не имеет определенного значения, и притворяться, что тег name описывает значение, является иллюзией.
У пользовательских тегов есть несколько проблем . Но ваш простой пример также демонстрирует расширенное использование тегов, определенных в спецификациях HTML. Кто знает, что произойдет, если документ содержит несколько элементов title
или элемент title
вне его «легальной» области, элемент head
? Кто знает, что об этом подумают поисковые системы?
Дело в том, что title
определен в HTML, и браузеры обрабатывают его по-своему, который вы не можете контролировать. Если браузер решит взять неуместный элемент title
, как если бы он был в соответствии со стандартом в head
, и поэтому использует его определенным образом (например, в верхней панели или элементе управления вкладками), что вы можете с этим поделать? Если он даже отменяет стандартный элемент title
, что вы делаете?
Если вы просто используете пользовательские теги, вы можете решить игнорировать проблему IE (которая не может быть полностью решена с помощью JavaScript, поскольку JavaScript может быть отключен). Но вы все равно будете использовать что-то, что может произойти сбой завтра, когда какой-нибудь поставщик браузеров начнет поддерживать расширенный тег, и у него будет такое же имя, как у вашего тега (но другое значение). И <book>
является хорошим кандидатом для этого. Это может даже пробиться к спецификациям HTML когда-нибудь; Черновики HTML5 уже имеют <article>
.
Ваша таблица стилей может переопределить любую стандартную презентацию , описываемую в CSS сегодня, но браузеры могут использовать расширенные функции CSS или могут использовать функции представления, не описанные в CSS. И новые теги могут иметь стандартную функциональность , которая вас удивит и вряд ли можно ожидать сейчас.