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

CSS属性选择器值中的值是否需要引用?,css,css-selectors,Css,Css Selectors,e、 g: “val”是否需要加引号?单人房还是双人房?整数呢?不,它们不必带引号,但为了避免歧义,许多人会使用引号,如果值包含空格,则需要引号 单引号或双引号都可以,整数将以相同的方式处理(css在字符串和整数之间没有区别) 参见中的示例。它们不需要引用 字符串/双精度数/整数之间也没有区别,更不用说打字了。根据中的示例,引号是可选的 在以下示例中,选择器匹配其“class”属性的值正好为“example”的所有SPAN元素: 这里,选择器匹配所有SPAN元素,其“hello”属性的值正好是“

e、 g:


“val”是否需要加引号?单人房还是双人房?整数呢?

不,它们不必带引号,但为了避免歧义,许多人会使用引号,如果值包含空格,则需要引号

单引号或双引号都可以,整数将以相同的方式处理(css在字符串和整数之间没有区别)


参见中的示例。

它们不需要引用


字符串/双精度数/整数之间也没有区别,更不用说打字了。

根据中的示例,引号是可选的

在以下示例中,选择器匹配其“class”属性的值正好为“example”的所有SPAN元素:

这里,选择器匹配所有SPAN元素,其“hello”属性的值正好是“Cleveland”,其“bye”属性的值正好是“Columbus”:


数字被视为字符串,即它们可以被引用,但不必被引用。

TLDR:Quotes是必需的,除非该值符合

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

有趣的是,@Pekka引用的css spec链接恰好在其href特定示例周围使用了引号

这不仅仅是因为非字母字符,如句号或斜杠,使这种独特的情况下,报价要求-使用部分匹配选择器~=不工作,如果你只是使用“domain.com”中的“domain”

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

属性值必须是CSS标识符或字符串。[CSS21]选择器中属性名称和值的大小写敏感度取决于文档语言

以下是标识符信息:

在CSS中,标识符(包括选择器中的元素名称、类和ID)只能包含字符[a-zA-Z0-9]和ISO 10646字符U+00A0及更高,加上连字符(-)和下划线(33;);它们不能以数字、两个连字符或连字符后跟数字开头。标识符还可以包含转义字符和任何ISO10646字符作为数字代码(请参阅下一项)。例如,标识符“B&W?”可以写为“B\&W\?”或“B\26 W\3F”


我的答案似乎是正确的,但这是因为“~=”是一个空白选择器比较器,因此它永远不会匹配href值中的部分字符串。然而,'*='比较器确实可以工作。像“domain”这样的部分字符串用于匹配href='www.domain.com'。但是检查完整的域名是行不通的,因为它违反了标识符规则。

Ah。。在阅读css3规范时,我看到的所有示例都使用引号。未引用的值必须以字母开头。@DaveSchweisguth
[需要引用]
“属性值必须是标识符或字符串[引用]:”。“标识符…不能以数字开头:”。使用各种属性和属性选择器的组合(^=,$=,|=,=,*=),您将看到CSS以[name$=1]等符号中断,但当[name$=“1”]无引号的值必须以字母开头时会恢复。请参阅我对Pekka答案的评论。此答案不完全正确…请参阅此小提琴-->。使用属性和属性选择器的各种组合(^=,$=,|=,=,*=),您将看到CSS使用例如[name$=1]中断,但在[name$=“1”]此答案不完全正确时恢复…请参阅此小提琴-->。使用属性和属性选择器的各种组合(^=,$=,|=,=,*=),您将看到CSS使用例如[name$=1]中断,但在[name$=1]时恢复
a[href="val"]
span[class=example] { color: blue; }
span[hello="Cleveland"][goodbye="Columbus"] { color: blue; }