2016-08-31 1 views
0

Некоторые люди, кажется, как переписатьЕсть ли технические причины не использовать неопределенные пользовательские элементы для всего?

<div id="homepage">[...]</div> 

в

<app-homepage>[...]</app-homepage> 

Существуют ли какие-либо технические или спецификации, связанные причины не делать этого? Имейте в виду, что я говорю исключительно об изменении этого на уровне HTML и CSS; Элементы не были определены с помощью API пользовательских элементов.

+0

От этого зависит. Если вы знаете целевые браузеры и не перераспределяете код, не проблема. в противном случае нет. http://stackoverflow.com/q/27853049/4600982 – Supersharp

ответ

0

Tl; dr: Не делайте этого. Используйте спецификацию пользовательского элемента для того, для чего он сделан. Взлом между вашим синтаксисом HTML не является тем, для чего он создан.

Семантика

Прежде всего пользовательских элементов в целом может разбивают семантику структуры DOM. Когда пользовательские элементы используются правильно, вы получаете много энергии взамен, но таким образом вы отказываетесь от семантики без какой-либо выгоды. Вместо того, чтобы использовать соответствующие элементы HTML5, как <header>, <article> и т.д.

Неопределенные пользовательские состояние элемента

В соответствии с настраиваемыми элементами спецификации такие элементы имеют пользовательский элемент состояния

«неопределенное» (не определенный, нестандартный)

Теперь, как спецификация HTML работает с любым элементом, который не распознан, имеет определенное поведение создания только неопределенной HTML-формы по умолчанию nt.

До тех пор, пока спецификация специального элемента не была бы невероятно опасна для определения таких элементов, поскольку существует риск того, что будущая версия HTML будет ее реализовывать, но теперь все элементы с - зарезервированы для пользовательских элементов.

Означает ли это, что вы полностью в безопасности? Нет, потому что вы ставите себя в том же пространстве имен, что и все другие пользовательские элементы. И в отличие от внешних таблиц стилей, нет надлежащего способ пространства имен их, так что если вы хотите сделать что-то вроде этого вам придется писать код, как

<my-app-name-homepage>[...]</my-app-name-homepage> 

и даже тогда вы все равно в конечном итоге с элементом с undefined государство.

Смежные вопросы