Какие элементы DOM не могут принимать идентификатор? - программирование
Подтвердить что ты не робот

Какие элементы DOM не могут принимать идентификатор?

Я читаю этот основной учебник по canvas элементам. (almost) в следующем предложении привлекло мое внимание:

Атрибут id не является специфичным для этого элемента, но является одним из атрибутов HTML по умолчанию, которые могут быть применены (почти) к каждому элементу HTML

Какие элементы html не могут принимать идентификатор?

4b9b3361

Ответ 1

В HTML5 атрибут id является глобальным атрибутом и может быть указан в любой.


Если вы просмотрите Декларацию типа документа для HTML4, вы можете найти элементы, которые не имеют %attrs;, определенные в их списке атрибутов, чтобы указать, что они не поддерживают атрибут id. В нижней части раздела "Заголовок документа" находятся теги: HEAD, TITLE, BASE, META, STYLE, SCRIPT и HTML.

Обратите внимание, что хотя элемент PARAM не включает объявление %attrs; в свой список атрибутов, он явно разрешает атрибут id сам в этом списке.

<!ATTLIST PARAM
  id          ID             #IMPLIED  -- document-wide unique id --
  name        CDATA          #REQUIRED -- property name --
  value       CDATA          #IMPLIED  -- property value --
  valuetype   (DATA|REF|OBJECT) DATA   -- How to interpret value --
  type        %ContentType;  #IMPLIED  -- content type for value
                                      when valuetype=ref --
  >

Ответ 2

От w3schools (да, я знаю...):

Примечание. Атрибут id недействителен: <base>, <head>, <html>, <meta>, <param>, <script>, <style> и <title>.

Обратите внимание, что это допустимо только для HTML4, но это объясняет "почти" учебника.

Как отмечали другие, HTML5 принимает id для всех элементов.

Ответ 3

Немного удивительно, что они говорят об этом в контексте элемента canvas, который является элементом HTML5. В HTML5 атрибут id разрешен для любого элемента без исключения. Более ранние версии HTML накладывают различные ограничения. HTML 4.01 исключает base, head, html, meta, script, style и title, но XHTML 1.01 удаляет это ограничение.