我正在读这个basic tutorial on canvas
elements。以下句子中的(almost)
引起了我的注意:
id属性不是特定于元素的,而是可以应用于(几乎)每个HTML元素的默认HTML属性之一
哪些html元素无法接受id?
答案 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
属性。包含的内容位于“文档头”部分的底部附近: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 :(得分:3)
有点令人惊讶的是,他们在canvas
元素的上下文中说这是一个HTML5元素。在HTML5中,任何元素都允许id
属性,没有异常。早期版本的HTML会产生各种限制。 HTML 4.01排除了base
,head
,html
,meta
,script
,style
和title
,但XHTML 1.01已删除这个限制。