什么是HTML中的id属性的有效值?
为HTML元素创建id
属性时,该值有哪些规则?
对于HTML 4,答案在技术上是:
ID和名称标记必须以字母([A-Za-z])开头,后面可以跟随任意数量的字母,数字([0-9]),连字符(“ - ”),下划线(“_”) ,冒号(“:”)和句点(“。”)。
HTML 5更加宽容,只是说一个ID必须包含至少一个字符并且可能不包含任何空格字符。
id属性在XHTML中区分大小写。
作为一个纯粹的实际问题,你可能想避免某些字符。 句点,冒号和'#'在CSS选择器中有特殊含义,所以你必须使用CSS中的反斜线或传递给jQuery的选择器字符串中的双反斜线来转义这些字符。 考虑一下,在疯狂地使用时间段和冒号进入id之前,您需要多久才能逃脱样式表或代码中的某个角色。
例如,HTML声明<div id="first.name"></div>
是有效的。 您可以在CSS中选择该元素作为#first.name
并在jQuery中如下所示: $('#first.name').
但是,如果您忘记了反斜杠$('#first.name')
,您将拥有一个完全有效的选择器,它将first
查找带有id的元素,并且还具有类name
。 这是一个容易忽略的错误。 相反,从长远来看,选择id first-name
(连字符而非句点)可能会更快乐。
您可以通过严格遵守命名约定来简化开发任务。 例如,如果您完全将自己限制为小写字符,并始终用连字符或下划线分隔单词(但不能同时选择一个而不使用另一个),那么您将拥有一个易于记忆的模式。 你永远不会怀疑“它是firstName
还是FirstName
?” 因为你会一直知道你应该输入first_name
。 喜欢骆驼的情况? 然后限制自己,不要使用连字符或下划线,并始终使用第一个字符的大写或小写字母,不要混合它们。
一个现在非常模糊的问题是,至少有一个浏览器Netscape 6错误地将id属性值视为区分大小写。 这意味着如果你的CSS(大写'F')在你的HTML(小写'f')和#FirstName { color: red }
中键入了id="firstName"
,那么这个错误的浏览器将会失败将元素的颜色设置为红色。 在编辑时,2015年4月,我希望你没有被要求支持Netscape 6.请考虑这是一个历史脚注。
从HTML 4规范:
ID和名称标记必须以字母([A-Za-z])开头,后面可以跟随任意数量的字母,数字([0-9]),连字符(“ - ”),下划线(“_”) ,冒号(“:”)和句点(“。”)。
一个常见的错误是使用以数字开头的ID。
您可以在技术上使用冒号和句号在id / name属性中,但我强烈建议避免这两种情况。
在CSS(以及像jQuery这样的几个JavaScript库)中,句点和冒号都有特殊含义,如果你不小心的话,你会遇到问题。 周期是类选择器,冒号是伪选择器(例如,当鼠标悬停在某个元素上时,“:hover”)。
如果你给一个元素id为“my.cool:thing”,你的CSS选择器将如下所示:
#my.cool:thing { ... /* some rules */ ... }
这真的是说:“CSS中的ID为'my'的元素,'cool'类和'thing'伪选择器”。
坚持任何情况下的AZ,数字,下划线和连字符。 如上所述,确保您的ID是唯一的。
这应该是你首先关心的问题。
链接地址: http://www.djcxy.com/p/291.html上一篇: What are valid values for the id attribute in HTML?
下一篇: Why do weird things in font color attribute produce real colors?