2013-03-18 11 views
9
#something { 
    background: url(data:image/png;base64,ABCDEF); 
} 

此代碼段在所有支持數據URI(顯然不含ABCDEF)的瀏覽器中都可以使用未引用的數據URI在CSS中有效嗎?

此外,根據the CSS 2.1 spec是有效的:

... 可選單引號(')或雙引號(「)字符,後跟URI本身...

validator不會接受它沒有報價:

值錯誤:後臺url(數據:圖像/ png; base64,ABCDEF)是不正確的URL

如果用單引號或雙引號包圍URI,它將進行驗證。

我錯過了什麼嗎?它是驗證器中的錯誤嗎? 編輯it was

+1

你應該更新你的問題:這是一個驗證器中的錯誤,現在已經修補。參看討論https://github.com/w3c/css-validator/issues/42 – 2017-03-17 16:12:48

回答

11

只要URI本身不破url()語法以任何方式(如()必須被轉義或URI編碼,使他們不提前結束功能標記,在規範中也提到)即使沒有引用也應該有效。

這可能是一個驗證錯誤。具體來說,它不會出現,以處理任何形式的不帶引號的數據URI,因爲當我簡單地改變datahttp(即使它顯然並不像一個典型的HTTP地址):

#something { 
    background: url(http:image/png;base64,ABCDEF); 
} 

...它然後神奇地通過驗證。

+2

同意。如果規範將其定義爲可選項,那麼除非有其他說法需要針對數據方案有所不同,否則驗證程序的問題是驗證程序是否因缺少標記而失敗。 – PhonicUK 2013-03-18 15:55:49

+1

我在[github]上打開了一個問題(https://github.com/w3c/css-validator/issues/42#issuecomment-155572400)。 – 2015-11-11 03:13:35