哪些DOM元素不能接受id?

时间:2012-06-19 18:51:24

标签: html html5 dom

我正在读这个basic tutorial on canvas elements。以下句子中的(almost)引起了我的注意:

  

id属性不是特定于元素的,而是可以应用于(几乎)每个HTML元素的默认HTML属性之一

哪些html元素无法接受id?

3 个答案:

答案 0 :(得分:14)

来自w3schools(是的,我知道......):

  

注意:id属性在以下内容中无效:<base><head><html>,   <meta><param><script><style><title>

请注意,这仅适用于HTML4,但这解释了教程的“差不多”。

正如其他人所指出的,HTML5在所有元素上都接受id。

答案 1 :(得分:13)

HTML5 中,id属性为global attribute,可在任意元素上指定。


如果查看Document Type Declaration for HTML4,您可以找到属性列表中未定义%attrs;的元素,以表明它们不支持id属性。包含的内容位于“文档头”部分的底部附近:HEADTITLEBASEMETASTYLESCRIPT,和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 :(得分:3)

有点令人惊讶的是,他们在canvas元素的上下文中说这是一个HTML5元素。在HTML5中,任何元素都允许id属性,没有异常。早期版本的HTML会产生各种限制。 HTML 4.01排除了baseheadhtmlmetascriptstyletitle,但XHTML 1.01已删除这个限制。