14

我正在阅读有关元素的基本教程canvas。下面(almost)这句话引起了我的注意:

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

哪些 html 元素不能接受 id?

4

3 回答 3

14

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

<base>注意: id 属性在、<head><html><meta><param><script><style>和中无效<title>

请注意,这仅对 HTML4 有效,但这解释了本教程的“几乎”。

正如其他人指出的那样,HTML5 接受所有元素的 id 。

于 2012-06-19T18:54:27.107 回答
13

HTML5中,id属性是一个全局属性,可以在任何元素上指定。


如果您查看HTML4的文档类型声明,您会发现在其属性列表中未定义的元素%attrs;表明它们不支持该id属性。包括在“文档头”部分底部附近的那些:HEADTITLEBASEMETASTYLESCRIPTHTML

请注意,尽管该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 --
  >
于 2012-06-19T18:55:29.350 回答
3

他们在元素的上下文中这么说有点令人惊讶canvas,这是一个 HTML5 元素。在 HTML5 中,id任何元素都允许该属性,无一例外。早期版本的 HTML 施加了各种限制。HTML 4.01 排除了base, head, html, meta, script, style, 和title,但 XHTML 1.01 删除了这个限制。

于 2012-06-19T18:57:56.140 回答