为什么元素ID不能以整数开头?
这个问题在这里已经有了答案:
为什么元素ID不能以整数开头?
他们能。 但是CSS ID选择器不能以数字开头。 例如,这个HTML是有效的:
<div id="1foo">testing 1 2 3</div>
...但是这CSS是无效的:
#1foo {
color: green;
}
CSS标准说,一个id
选择器不能以数字开头:
一个ID选择符包含一个“数字符号”(U + 0023,#),后面跟着ID值,它必须是一个CSS标识符。
然后定义CSS标识符:
在CSS中,标识符(包括元素名称,类和选择器中的ID)只能包含字符[a-zA-Z0-9]
和ISO 10646字符U+00A0
及更高版本,以及连字符( -
)和下划线_
); 他们不能以数字 ,两个连字符或连字符后跟数字开头。 标识符也可以包含转义字符和任何ISO 10646字符作为数字代码(参见下一项)。 例如,标识符"B&W?"
可以写成"B&W?"
或"B26 W3F"
。
(我的重点)
所以理论上,你可以通过转义CSS选择器中的数字来解决#1foo
无法工作的问题。 例如:
HTML:
<div id="1foo">testing 1 2 3</div>
CSS:
#31 foo {
color: green;
}
...其中31
是十六进制"1"
的字符代码。 现场示例:
#31 foo {
color: green;
}
<div id="1foo">testing 1 2 3</div>
实际上,你可以用一个数字开始一个id,像document.getElementById
这样的方法可以很好地工作。
但是一些较旧的页面使用一个元素喜欢的传统IE标准
<div id="hello">World</div>
可以引用为document.hello
。 当然这个语法不起作用,但我认为document["123id"]
可以修复它。
但是,最重要的是,CSS选择器不适用于以数字开头的ID。 你必须逃避它们:
#123id {color: red;} /* It doesn't work */
#31 23id {color: blue;} /* Oh yeah! */
值得努力? 可能不会。
从HTML 4规范:
ID和名称标记必须以字母([A-Za-z])开头,后面可以跟随任意数量的字母,数字([0-9]),连字符(“ - ”),下划线(“_”) ,冒号(“:”)和句点(“。”)。
链接地址: http://www.djcxy.com/p/15443.html