HTML中id属性的有效值是什么?

为HTML元素创建id属性时,该值有哪些规则

对于HTML 4,技术上的答案是:

ID和名称标记必须以字母([a-Za-z])开头,后面可以是任意数量的字母、数字([0-9])、连字符(“-”)、下划线(“)、冒号(:”)和句点(“.”)

HTML5甚至更为宽松,只规定id必须至少包含一个字符,并且不能包含任何空格字符

id属性在XHTML中区分大小写

作为一个纯粹的实际问题,您可能希望避免使用某些字符。句点、冒号和“#”在CSS选择器中具有特殊意义,因此您必须使用CSS中的反斜杠或传递给jQuery的选择器字符串中的双反斜杠来转义这些字符。想一想在ID中使用句号和冒号之前,您必须在样式表或代码中转义字符的频率

例如,HTML声明<div id=“first.name”&gt&lt/部门&gt是有效的。您可以在CSS中将该元素选择为#first\.name,在jQuery中选择为:$('#first\\.name')。但是如果您忘记了反斜杠,$('#first.name'),那么您将有一个非常有效的选择器来查找id为first并且具有class名称的元素。这是一个容易被忽视的错误。从长远来看,选择id名字(连字符而不是句号)可能会让你更开心

通过严格遵守命名约定,可以简化开发任务。例如,如果您将自己完全限制为小写字符,并且始终使用连字符或下划线分隔单词(但不能同时使用连字符或下划线,请选择一个,不要使用另一个),那么您就有了一个易于记忆的模式。你永远不会怀疑“是名字还是名字?”,因为你总是知道你应该键入名字。你喜欢骆驼箱吗?然后限制你自己,不要使用连字符或下划线,并且始终对第一个字符使用大写或小写,不要混合使用它们


一个现在非常模糊的问题是,至少有一个浏览器Netscape 6错误地将id属性值视为区分大小写。这意味着,如果您在HTML(小写字母“f”)中键入了id=“firstName”,在CSS(大写字母“f”)中键入了#firstName{color:red},那么错误的浏览器将无法将元素的颜色设置为红色。在2015年4月进行编辑时,我希望您没有被要求支持Netscape 6。认为这是一个历史注脚。

发表评论