为HTML元素创建id属性时,该值有哪些规则?
当前回答
救命,我的Javascript坏了!
每个人都说ID不能重复。
在除FireFox之外的所有浏览器中都试用过
<div id=“ONE”></div><div id=“ONE”></div><div id=“ONE”></div><脚本>document.body.append(document.querySelectorAll(“#ONE”).length,'DIV!')document.body.append('in',typeofONE)console.log(一);//全局变量!!</script>
解释
在世纪之交,微软拥有90%的浏览器市场份额,
并实施从未标准化的浏览器行为:
1.为每个ID创建全局变量
2.为重复ID创建数组
所有后来的浏览器供应商都复制了这种行为,否则他们的浏览器将不支持旧网站。
2015年左右,Mozilla删除了2。来自FireFox和1。仍然有效。
所有其他浏览器仍然支持1。和2。
我每天都使用它,因为键入ONE而不是document.querySelector(“#ONE”)帮助我更快地创建原型;我不在生产中使用它。
其他回答
根据HTML 4规范:
ID和NAME标记必须以字母([a-Za-z])开头,后面可以是任意数量的字母、数字([0-9])、连字符(“-”)、下划线(“_”)、冒号(“:”)和句点(“.”)。
一个常见的错误是使用以数字开头的ID。
Html ID
id属性指定其元素的唯一标识符(id)。
身份证的形式没有其他限制;特别是,ID可以仅由数字组成,以数字开头,以下划线开头,仅由标点符号组成,等等。
元素的唯一标识符可以用于多种用途,最明显的是作为使用片段链接到文档的特定部分的方式,作为编写脚本时以元素为目标的方式,以及根据CSS对特定元素进行样式设置的方式。
元素的唯一标识符。
文档中不能有多个元素具有相同的id值。
任何字符串,具有以下限制:
必须至少有一个字符长不得包含任何空格字符:U+0020空格U+0009字符表(选项卡)U+000A管线进料(LF)U+000C模板进料(FF)U+000D回车(CR)
使用ASCII字母和数字以外的字符,“_”、“-”和“.”可能会导致兼容性问题,因为HTML 4中不允许这些问题。虽然HTML5中取消了这一限制,但为了兼容性,ID应该以字母开头。
HTML5
请记住,ID必须是唯一的,即文档中不能有多个元素具有相同的ID值。
HTML5中关于ID内容的规则是(除了唯一性之外):
此属性的值不能包含空格。[...]虽然HTML5中取消了这一限制,但为了兼容性,ID应该以字母开头。
这是关于ID的W3规范(来自MDN):
任何字符串,具有以下限制:必须至少有一个字符长不能包含任何空格字符以前版本的HTML对ID值的内容设置了更大的限制(例如,它们不允许ID值以数字开头)。
更多信息:
W3-全局属性(id)MDN属性(id)
大写和小写字母有效“_”和“-”也有效数字有效冒号(,)和句点(.)似乎有效有趣的是,表情符号起作用
推荐文章
- 使伸缩项目正确浮动
- 形式内联内的形式水平在twitter bootstrap?
- 自定义元素在HTML5中有效吗?
- 如何触发自动填充在谷歌Chrome?
- 创建圈div比使用图像更容易的方法?
- 为什么Chrome浏览器不正确地确定页面是在不同的语言,并提供翻译?
- 在网页上用鼠标模拟震颤(例如帕金森病)?
- Bootstrap抛出Uncaught错误:Bootstrap的JavaScript需要jQuery
- 如何改变文本区域的边框颜色:焦点
- 我如何设置背景颜色为文本的宽度,而不是整个元素的宽度,使用CSS?
- 如何删除和清除所有的本地存储数据
- 强制打开“另存为…”弹出打开文本链接点击PDF在HTML
- 如何修改标签文本?
- 在HTML中还有其他有用的空格码吗,比如半空格的 , em-spaces, en-spaces等等?
- 输入触发器按钮单击