在CSS类选择器中允许使用哪些字符/符号?
我知道下面的字符是无效的,但是哪些字符是有效的呢?
~ ! @ $ % ^ & * ( ) + = , . / ' ; : " ? > < [ ] \ { } | ` #
在CSS类选择器中允许使用哪些字符/符号?
我知道下面的字符是无效的,但是哪些字符是有效的呢?
~ ! @ $ % ^ & * ( ) + = , . / ' ; : " ? > < [ ] \ { } | ` #
当前回答
对于HTML5和css3,类和id可以以数字开头。
其他回答
你可以直接检查CSS语法。
基本上,名称必须以下划线(_)、连字符(-)或字母(a - z)开头,后面跟着任意数量的连字符、下划线、字母或数字。这里有一个问题:如果第一个字符是连字符,第二个字符必须是字母或下划线,并且名称必须至少有两个字符长。
-?[_a-zA-Z]+[_a-zA-Z0-9-]*
简而言之,前面的规则转换为以下内容,摘自W3C规范:
在CSS中,标识符(包括元素名称、类和id) 选择器)只能包含字符[a-z0-9]和iso10646 字符U+00A0及以上,加上连字符(-)和下划线 (_);它们不能以数字开头,也不能以连字符后跟数字。 标识符还可以包含转义字符和任何ISO 10646 作为数字代码的字符(见下一项)。例如, 标识符“B&W?”可以写成“B&W?”或“B\ 26w \3F”。
以连字符或下划线开头的标识符通常保留给特定于浏览器的扩展,如-moz-opacity。
1由于包含了转义的Unicode字符(没有人真正使用),这一切变得更加复杂。
注意,根据我链接的语法,以两个连字符开头的规则,例如——indent1,是无效的。然而,我很确定我在实践中见过这种情况。
对于HTML5和css3,类和id可以以数字开头。
令我惊讶的是,这里的大多数答案都是错误的。事实证明:
CSS类名中除了NUL之外的任何字符都是允许的。(如果CSS包含NUL(转义与否),结果是未定义的。[CSS-characters])
Mathias Bynens的回答链接到如何使用这些名字的解释和演示。在CSS代码中,类名可能需要转义,但这不会改变类名。例如,一个不必要的超转义表示将看起来与该名称的其他表示不同,但它仍然引用相同的类名。
大多数其他(编程)语言没有转义变量名(“标识符”)的概念,因此变量的所有表示必须看起来相同。在CSS中不是这样的。
注意,在HTML中,没有办法在类名属性中包含空格字符(空格、制表符、换行符、换行符和回车符),因为它们已经将类彼此分开了。
因此,如果你需要将一个随机字符串转换为CSS类名:注意NUL和空格,并转义(适用于CSS或HTML)。完成了。
对于那些寻找解决方法的人,您可以使用属性选择器,例如,如果您的类以数字开头。变化:
.000000-8{background:url(../../images/common/000000-0.8.png);} /* DOESN'T WORK!! */
:
[class="000000-8"]{background:url(../../images/common/000000-0.8.png);} /* WORKS :) */
此外,如果有多个类,你需要在选择器中指定它们或使用~=操作符:
[class~="000000-8"]{background:url(../../images/common/000000-0.8.png);}
来源:
https://benfrain.com/when-and-where-you-can-use-numbers-in-id-and-class-names/ 是否有一种变通方法使名称以数字开头的CSS类有效? https://developer.mozilla.org/en-US/docs/Web/CSS/Attribute_selectors
我们可以在类名中使用所有字符。甚至像#和..我们只需要用\(反斜杠)来转义它们。
test \。123年{ 颜色:红色; } test \ # 123 { 颜色:蓝色; } test \ @123 { 颜色:绿色; } test \ < 123 { 颜色:棕色; } test \ ' 123 { 颜色:紫色; } test \ ~ 123 { 颜色:番茄; } < div class = " test.123”> test.123 < / div > < div class = "测试# 123 " >测试# 123 < / div > < div class = " test@123”> test@123 < / div > < div class = "测试< 123”测试< 123 > < / div > < div class = " 123 " >测试测试的123 < / div > 测试~ < div class = " 123 " >测试~ 123 < / div >