微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

是否需要引用CSS属性选择器值中的值?

例如.:
a[href="val"]

“val”是否需要在它周围引用?单人或双人都可以吗?整数怎么样?

解决方法

TLDR:除非值符合 identifier specification for CSS2.1,否则需要引号

CSS规范可能会说它们是可选的,但现实世界呈现出不同的故事.在对href属性进行比较时,您需要使用引号(在我非常有限的测试中单工或双工 – 最新版本的FF,IE,Chrome.)

有趣的是,@ Pekka引用的css规范链接恰好使用了特定于href的示例的引号.

并且这不仅仅是由于非字母字符如句点或斜杠给出了这种独特情况的引用要求 – 如果你只是使用“domain.com”中的“domain”,则使用部分匹配选择器〜=不起作用

好的,这里的每个答案都是错误的(包括我自己以前的答案.)CSS2规范没有说明选择器部分本身是否需要引号,但CSS3规范确实引用了规则作为CSS21实现:

07001

Attribute values must be CSS identifiers or strings. [CSS21] The case-sensitivity of attribute names and values in selectors depends on the document language.

这是标识符信息:

07002

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. Identifiers can also contain escaped characters and any ISO 10646 character as a numeric code (see next item). For instance,the identifier “B&W?” may be written as “B\&W\?” or “B\26 W\3F”.

我的回答似乎是正确的,但这是因为’〜=’是一个白空间选择器比较器,所以它永远不会匹配href值内的部分字符串.然而,’* =’比较器确实有效.像’domain’这样的部分字符串可以用于匹配href =’www.domain.com’.但是检查完整的域名是行不通的,因为它违反了标识符规则.

原文地址:https://www.jb51.cc/css/217449.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。