[英]Do values in CSS attribute selector values need to be quoted?
例如:
a[href="val"]
“val”需要在它周圍加引號嗎? 單人還是雙人都可以接受? 對於整數呢?
根據CSS 2.1 規范中的示例,引號是可選的。
在以下示例中,選擇器匹配“class”屬性的值恰好為“example”的所有 SPAN 元素:
span[class=example] { color: blue; }
在這里,選擇器匹配所有“hello”屬性的值恰好為“Cleveland”並且其“goodbye”屬性的值恰好為“Columbus”的 SPAN 元素:
span[hello="Cleveland"][goodbye="Columbus"] { color: blue; }
數字被視為字符串,即它們可以被引用,但它們不是必須的。
TLDR:報價需要除非值滿足用於CSS2.1標識符指定
CSS 規范可能會說它們是可選的,但現實世界卻是另一回事。
在與 href 屬性進行比較時,您需要使用引號(在我非常有限的測試中使用單引號或雙引號 - FF、IE、Chrome 的最新版本。)
有趣的是,@Pekka 引用的 css 規范鏈接恰好在其特定於 href 的示例周圍使用引號。
這不僅僅是因為句點或斜杠等非字母字符導致這種獨特情況需要引用 - 如果您只使用“domain.com”中的“域”,則使用部分匹配選擇器 ~= 不起作用
好吧,這里的每個答案都是錯誤的(包括我自己之前的答案。)CSS2 規范沒有說明選擇器部分本身是否需要引號,但是 CSS3 規范確實並引用了規則作為 CSS21 實現:
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&W?” 可以寫成“B\\&W\\?” 或“B\\26 W\\3F”。
我的答案似乎是正確的,但那是因為 '~=' 是一個空白選擇器比較器,因此它永遠不會匹配 href 值中的部分字符串。 然而,'*=' 比較器確實有效。 像“域”這樣的部分字符串確實適用於匹配 href='www.domain.com'。 但是檢查完整的域名不起作用,因為它違反了標識符規則。
它們不需要被引用。
字符串/雙精度數/整數之間也沒有區別。 CSS 不是圖靈完備的,更不用說輸入了。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.