P粉3641297442023-08-18 00:45:45
对于HTML 4来说,技术上的答案是:
HTML 5更加宽容,只要求id至少包含一个字符,并且不能包含任何空格字符。
在XHTML中,id属性是区分大小写的。
从纯粹实际的角度来看,你可能想要避免使用某些字符。在CSS选择器中,句点、冒号和井号具有特殊含义,因此你需要在CSS中使用反斜杠或在传递给jQuery的选择器字符串中使用双反斜杠来转义这些字符。在你的样式表或代码中,考虑一下你需要多频繁地转义一个字符,然后再决定是否在id中使用句点和冒号。
例如,HTML声明<div id="first.name"></div>
是有效的。你可以在CSS中选择该元素为#first\.name
,在jQuery中选择为$('#first\\.name')
。但是如果你忘记了反斜杠,$('#first.name')
,你将得到一个完全有效的选择器,它寻找id为first
并且具有class为name
的元素。这是一个容易忽视的错误。从长远来看,你可能更喜欢选择id为first-name
(使用连字符而不是句点)。
通过严格遵守命名约定,你可以简化开发任务。例如,如果你完全限制自己只使用小写字符,并且总是使用连字符或下划线来分隔单词(但不能同时使用连字符和下划线,选择其中一个并且永远不使用另一个),那么你就有了一个容易记住的模式。你永远不会疑惑“是firstName
还是FirstName
?”因为你总是知道你应该输入first_name
。喜欢驼峰命名法?那么只限制自己使用驼峰命名法,不使用连字符或下划线,并且始终一致地使用大写或小写作为第一个字符,不要混合使用。
一个现在非常不常见的问题是至少有一个浏览器,Netscape 6,错误地将id属性值视为区分大小写。这意味着如果你在HTML中输入了id="firstName"
(小写的'f'),并在CSS中输入了#FirstName { color: red }
(大写的'F'),那个有缺陷的浏览器将无法将元素的颜色设置为红色。在编辑时(2015年4月),希望你不需要支持Netscape 6。将此视为历史注释。