#something {
background: url(data:image/png;base64,ABCDEF);
}
这个代码段可以在所有支持数据URI的浏览器中运行(显然不是ABCDEF)。
此外,它根据the CSS 2.1 spec有效:
... 可选单引号(')或双引号(“)字符后跟URI本身......
但validator不会在没有引号的情况下接受它:
值错误:后台网址(数据:image / png; base64,ABCDEF)是一个不正确的网址
如果用单引号或双引号括起URI,则会验证。
我错过了什么吗?它是验证器中的错误吗? 编辑:it was!
答案 0 :(得分:11)
只要URI本身不以任何方式破坏url()
语法(例如(
和)
必须进行转义或URI编码,以便它们不会过早地结束功能令牌,也在规范中提到),即使没有引用也应该有效。
这可能是验证错误。具体来说,它似乎不会以任何形式处理不带引号的数据URI,因为当我只是将data
更改为http
时(即使它显然不像典型的HTTP地址):
#something {
background: url(http:image/png;base64,ABCDEF);
}
......然后神奇地通过验证。