我最近遇到了一個奇怪的錯誤,其中選擇器在縮小後停止工作(使用csswring 3.0.7)。問題中的選擇符與數據屬性包含連字符的元素匹配。它在開發過程中工作,但在所有測試過的瀏覽器(Chrome,Firefox,IE11,Edge)上都沒有生產。屬性選擇器中的未加引號的連字符
查看縮小樣式表後,我發現選擇器已從[data-attr*="-"]
轉換爲[data-attr*=-]
。行情已被刪除,並被瀏覽器拒絕。
事情是,我找不到任何來源,說一個連字符需要引號。很明顯,縮小作者作者已經找到了我擁有的相同來源。
This page詳細說明了規範的相關部分。
因此,在CSS有效的不帶引號的屬性值是文本的任何字符串不是空字符串,包括轉義字符和/或字符完全匹配
/[-_\u00A0-\u10FFFF]/
的,並且不以數字或兩個連字符開始或連字符後跟數字。
在這種情況下,單個連字符似乎完全有效。
Here is a jsfiddle測試不同的場景。只有當試圖匹配一個單一的,不加引號的連字符時,選擇器纔會失敗。
我錯過了什麼嗎?這不應該是一個有效的選擇器嗎?
@Jonathan Lam:在重讀它時,它似乎是一個真正的問題。顯然,這些選擇器是由縮小器製作的。如果它們在源代碼中被引用,並且引號被縮小機器剝離...看起來OP只能獲得新的縮小機器。 – BoltClock
更改縮小器。 YUI壓縮機是我測試過的最好的。 http://yui.github.io/yuicompressor/ || http://refresh-sf.com/在最後一個URL(http:// refresh-sf。/我測試你的線,它保留報價。 –