我可以使用下划线开始 CSS 选择器 ID 或类吗? [复制]
Posted
技术标签:
【中文标题】我可以使用下划线开始 CSS 选择器 ID 或类吗? [复制]【英文标题】:Can I BEGIN a CSS selector ID or Class with an underscore? [duplicate] 【发布时间】:2014-06-11 20:08:32 【问题描述】:例如:#_id-name
和 ._class-name
我知道在早期根本不允许使用下划线 - 以及双连字符 (--
)。但是,如果它以_
开头,那么所有浏览器都能够读取/理解一个类或一个 ID 是否可以?
【问题讨论】:
可能重复:***.com/a/449000/1696030 答:可以! 谢谢 - 看起来我可以:w3.org/TR/CSS21/syndata.html#vendor-keywords 我见过另一个“可能重复”,但它只谈论使用下划线。我想知道是否可以 start 和 ID 或带下划线的类名... 【参考方案1】:我的答案基于html
而不仅仅是 CSS。文档:
总而言之,id 显然必须以字母 (A-Za-z
) 开头,并且后面可以有任何其他字母、数字、下划线或破折号。实际上,您可以使用-
或_
开头id
,它会起作用:http://jsfiddle.net/ExplosionPIlls/y6jvs/ 但以数字开头不起作用。
虽然这些限制似乎不适用于作为 CDATA 列表的类,但实际上它似乎工作相同:http://jsfiddle.net/ExplosionPIlls/y6jvs/1/
因此,您可以获得一致且面向未来的浏览器体验,我会尽量避免使用 ID、类名等做任何时髦的事情。
【讨论】:
Mmmm... 面向未来的浏览器体验值得牢记! 自 HTML5 以来,id 属性的规范已更改为删除您提到的限制。因此无需担心未来的打样。 “除了在文档中唯一之外,剩下的唯一要求是该值必须包含至少一个字符(不能为空),并且不能包含任何空格字符。” mathiasbynens.be/notes/html5-id-classhtml.spec.whatwg.org/multipage/dom.html#the-id-attribute @Albin 感谢您指出更新的规范。从某种意义上说,要求不会改变,我们不必担心未来的校对,但请注意,以 ID 的数字开头的选择器仍然不适用于 CSS 或 DOM 选择,即使它是一个有效的属性值. 确实如此。您仍然可以使用“#\000031”作为选择器而不是“#1”来匹配它,但这不是很实用。 jsbin.com/jawojijuza/1/edit?html,css,output以上是关于我可以使用下划线开始 CSS 选择器 ID 或类吗? [复制]的主要内容,如果未能解决你的问题,请参考以下文章
CSS里的HTML选择器、类选择器、ID选择器用于哪些范围?