Есть несколько вещей о других ответах, которые либо просто плохо сформулированы, либо, возможно, немного неверны.
False (iSh): нестандартные HTML-элементы «не допускаются», «незаконны» или «недействительными».
Не обязательно. Они "Некомформация". Анкет Какая разница? Что -то может «не подчиняться» и все еще быть «разрешено». W3C не собирается отправлять полицию HTML в ваш дом и вытаскивать вас.
W3C оставил вещи таким образом по причине. Соответствие и спецификации определяются сообществом. Если у вас есть меньшее количество сообществ, потребляющее HTML для более конкретных целей, и все они согласны с некоторыми новыми элементами, которые им нужны, чтобы облегчить ситуацию, они могут иметь то, что W3C называет как "Другие применимые спецификации". Анкет (Очевидно, что это грубое упрощение, но вы понимаете идею)
Тем не менее, строгие валидаторы объявят ваши нестандартные элементы «недействительными». Но это связано с тем, что задача валидатора состоит в том, чтобы обеспечить соответствие любой спецификации, для которой она подтверждает, а не для обеспечения «законности» для браузер или для использовать.
False (iSh): нестандартные HTML-элементы будут привести к вопросам отмены
Возможно, но маловероятно. (Заменить «Уилл» с «может») Единственный способ, которым это должно привести к проблеме рендеринга, - это если ваш пользовательский элемент противоречит другой спецификации, такой как изменение спецификации HTML или другая спецификация, честь в той же системе (например, как SVG, математика или что -то обычное).
Фактически, Причина, по которой CSS может стилеть нестандартные теги потому что спецификация HTML четко заявляет что:
Пользовательские агенты должны рассматривать элементы и атрибуты, которые они не понимают как семантически нейтральные; оставляя их в DOM (для процессоров DOM) и стилизация в соответствии с CSS (для процессоров CSS), но не выводя вывод от них
Примечание: Если вы хотите использовать пользовательский тег, просто запомните изменение в спецификации HTML в более позднее время, может взорвать ваш стиль, так что будьте готовы. Маловероятно, что W3C будет реализовать <imsocool>
тег, однако.
Нестандартные теги и javaScript (через DOM)
Причина, по которой вы можете получить доступ и изменить пользовательские элементы, используя JavaScript, заключается в том, что Спецификация даже говорит о том, как с ними следует обрабатывать в DOM, который является (действительно ужасным) API, который позволяет вам манипулировать элементами на вашей странице.
Интерфейс HTMlunkNownElement должен использоваться для элементов HTML, которые не определены этой спецификацией (или других применимыми спецификациями).
TL; DR: Соответствие спецификации выполняется для целей связи и безопасности. Несоценка все еще разрешена всем, кроме валидатор, единственная цель которого состоит в том, чтобы обеспечить соответствие, но чье использование необязательно.
Например:
var wee = document.createElement('wee');
console.log(wee.toString()); //[object HTMLUnknownElement]
(Я уверен, что это привлечет пламя, но мои 2 цента)