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

前端之家收集整理的这篇文章主要介绍了是否需要引用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’.但是检查完整的域名是行不通的,因为它违反了标识符规则.

猜你在找的CSS相关文章