当前位置: 首页 > 面试题库 >

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

何德寿
2023-03-14
问题内容

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


问题答案:

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

ID和NAME令牌必须以字母([A-Za-z])开头,然后可以跟任意数量的字母,数字([0-9]),连字符(“-”),下划线(“ _”)
,冒号(“:”)和句点(“。”)。

HTML 5更为宽容,只说一个id必须至少包含一个字符,并且不得包含任何空格字符。

在XHTML中,id属性区分大小写。

从纯粹的实践出发,您可能要避免使用某些字符。在CSS选择器中,句号,冒号和’#’具有特殊含义,因此您必须[在CSS中]使用反斜杠或在传递给jQuery的选择器字符串中使用双反斜杠来转义这些字符。想一想,在迷上句号和ID中的冒号之前,必须多久在样式表或代码中转义一个字符。

例如,HTML声明<divid="first.name"></div>有效。您可以#first\.name像在CSS中和在jQuery中那样选择该元素:$('#first\\.name').但是,如果忘记了反斜线$('#first.name'),您将拥有一个非常有效的选择器,该选择器查找具有id的元素first并且具有classname。这是一个容易忽略的错误。从长远来看,您可能会更高兴选择idfirst-name(连字符而不是句点)。

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

现在一个非常模糊的问题是,至少一个浏览器Netscape6错误地将id属性值视为区分大小写。这意味着,如果您id="firstName"在HTML(小写字母“f”)和#FirstName{color:red}CSS(大写字母“F”)中键入内容,则该错误的浏览器将无法将元素的颜色设置为红色。在进行此编辑(2015年4月)时,希望您不会被要求支持Netscape6。请考虑一下这是一个历史脚注。



 类似资料:
  • 问题内容: 在jQuery 1.6.1中进行更改之后,我一直在尝试定义HTML中属性和属性之间的差异。 查看jQuery1.6.1发行说明中的列表(在底部附近),似乎可以对HTML属性和属性进行如下分类: 属性:所有具有布尔值或UA计算得出的值,例如selectedIndex。 属性:可以添加到既不是布尔也不包含UA生成值的HTML元素中的“属性”。 有什么想法吗? 问题答案: 在编写HTML源代

  • 问题内容: 在浏览某些页面的HTML时,我注意到其中一些页面使用此属性“ data-reactid”,例如: 该属性是什么,其功能是什么? 问题答案: 该属性是一个自定义属性,使React可以在DOM中唯一地标识其组件。 这很重要,因为React应用程序可以在服务器和客户端上呈现。在内部,React建立了对构成您的应用程序的DOM节点的引用的表示形式(简化版本如下)。 无法在服务器和客户端之间共享

  • 问题内容: 在jQuery 1.6.1中进行更改之后,我一直在尝试定义HTML中属性和属性之间的差异。 查看jQuery1.6.1发行说明中的列表(在底部附近),似乎可以对HTML属性和属性进行如下分类: 属性:所有具有布尔值或UA计算得出的值,例如selectedIndex。 属性:可以添加到既不是布尔也不包含UA生成值的HTML元素中的“属性”。 有什么想法吗? 问题答案: 在编写HTML源代

  • 问题内容: 我一直在某些人的工作中看到角色属性。我也使用它,但是我不确定它的效果。 例如: 要么: 要么: 此角色属性是否必要? 此属性更适合语义吗? 它会提高SEO吗? 可以在此处找到角色列表,但是我看到有人组成了自己的角色。是否允许或正确使用role属性? 有什么想法吗? 问题答案: 您看到的大多数角色都定义为ARIA 1.0的一部分,然后又合并到HTML5中。一些新的HTML5元素(对话框,

  • 问题内容: 当像hidden属性这样的属性是boolean属性时,这意味着什么?有人可以用外行的术语解释吗? 问题答案: 2.5.2布尔属性 许多属性是布尔属性。元素上的布尔属性的存在表示真实值,而该属性的缺失表示错误值。 如果存在该属性,则其值必须为空字符串或该属性的规范名称的ASCII大小写不匹配的值,且没有前导或尾随空格。 布尔属性上不允许使用值“ true”和“ false”。为了表示一个

  • 问题内容: 我想知道以下两个代码段之间的区别是什么: 和 我确定当您使用特殊的JavaScript库时,它会执行某些操作,但是除此之外,它是否可以验证HTML或出于其他原因而需要? 问题答案: 该标签可让您单击标签,它会像点击相关的输入元素上进行处理。有两种创建此关联的方法: 一种方法是将label元素包装在input元素周围: 另一种方法是使用属性,为其提供关联输入的ID: 这对于与复选框和按钮