html – CSS选择器无法匹配数字属性值?为什么?

前端之家收集整理的这篇文章主要介绍了html – CSS选择器无法匹配数字属性值?为什么?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我已经设置了一个简单的测试页来说明我遇到的问题.
简而言之,这可以按预期工作(文本格式为粗体,带下划线的红色):
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
    <head>
        <style>
            [abc=x1] {
                color: red;
                text-decoration: underline;
                font-weight: bold;
            }
        </style>
    </head>
    <body>
        <div abc=x1>hello</div>
    </body>
</html>

这不会(文本保持黑色,不应用格式):

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
    <head>
        <style>
            [abc=1] {
                color: red;
                text-decoration: underline;
                font-weight: bold;
            }
        </style>
    </head>
    <body>
        <div abc=1>hello</div>
    </body>
</html>

我在两个例子之间唯一改变的是从x1到1的属性值(在CSS和HTML中).

所以看起来你无法匹配数字属性.

有谁知道为什么这……非常……有用……特征……存在吗?

解决方法

将字符串换行以匹配引号…
[abc="1"] {
    ...
}

jsFiddle.

Attribute values must be CSS identifiers or strings.

Source.

当你用引号括起来时,你告诉它匹配string.

当你不引用它时,它正在寻找identifier.

In CSS,identifiers (including element names,classes,and IDs in selectors) can contain only the characters [a-zA-Z0-9] and ISO 10646 characters U+00A0 and higher,plus the hyphen (-) and the underscore (_); they cannot start with a digit,two hyphens,or a hyphen followed by a digit.

原文链接:https://www.f2er.com/html/226023.html

猜你在找的HTML相关文章