e.g:
a[href="val"]
“val”是否需要在它周围加上引号?单人或双人都可以吗?整数怎么样?
答案 0 :(得分:3)
根据CSS 2.1 specs中的示例,引号是可选的。
在以下示例中,选择器匹配“class”属性具有“example”值的所有SPAN元素:
span[class=example] { color: blue; }
这里,选择器匹配所有SPAN元素,其“hello”属性的值恰好为“Cleveland”,其“goodbye”属性的值恰好为“Columbus”:
span[hello="Cleveland"][goodbye="Columbus"] { color: blue; }
数字被视为字符串,即它们可以被引用,但它们不需要。
答案 1 :(得分:3)
TLDR:除非值符合identifier specification for CSS2.1
,否则需要引用 CSS规范可能会说它们是可选的,但现实世界呈现出不同的故事。在对href属性进行比较时,您需要使用引号(在我非常有限的测试中单次或双次工作 - 最新版本的FF,IE,Chrome。)
有趣的是,@ Pekka引用的css规范链接碰巧使用了特定于href的示例的引号。
并且这不仅仅是由于非字母字符,如句点或斜线,给出了这种独特的情况引用要求 - 使用部分匹配选择器〜=如果你只是使用“domain.com”中的“域名”
好的,这里的每个答案都是错误的(包括我自己以前的答案。)CSS2规范没有说明选择器部分本身是否需要引号,但CSS3规范确实引用了规则作为CSS21实现:< / p>
http://www.w3.org/TR/css3-selectors/
属性值必须是CSS标识符或字符串。 [CSS21]选择器中属性名称和值的区分大小写取决于文档语言。
这是标识符信息:
http://www.w3.org/TR/CSS21/syndata.html#value-def-identifier
在CSS中,标识符(包括选择器中的元素名称,类和ID)只能包含字符[a-zA-Z0-9]和ISO 10646字符U + 00A0及更高,加上连字符( - )和下划线(_);它们不能以数字,两个连字符或连字符后跟数字开头。标识符还可以包含转义字符和任何ISO 10646字符作为数字代码(请参阅下一项)。例如,标识符“B&amp; W?”可以写成“B \&amp; W \?”或“B \ 26 W \ 3F”。
我的回答似乎是正确的,但这是因为'〜='是一个白空间选择器比较器,所以它永远不会匹配href值内的部分字符串。然而,'* ='比较器确实有效。像'domain'这样的部分字符串可以用于匹配href ='www.domain.com'。但是检查完整的域名是行不通的,因为它违反了标识符规则。
答案 2 :(得分:1)
不,他们不必有引号,为了避免模糊不清,很多人都会使用引号,如果值包含空格则需要引号。
单引号或双引号都可以,并且整数将以相同的方式处理(css没有字符串和整数之间的区别)。
请参阅the spec中的示例。
答案 3 :(得分:-1)
他们不需要引用。
字符串/双精度/整数之间也没有区别。 CSS isn't Turing-complete,更不用说打字了。