我正在编写一个预处理组件(用PHP编写),它在某些上下文中用CSS重写外部图像文件请求,例如:
background-image: url('/my-folder/my-image.png');作为CSS内联的数据URI(),例如:
background-image: url('data:image/png;base64,[Base-64 Encoding Here]');我刚刚在MDN上读到(带着一些惊喜)
在CSS 1中,
url()函数表示法只描述真正的URL。在CSS第2级中,扩展了url()的定义以描述任何URI,例如数据-uri。CSS值和单元3级返回到更窄的初始定义。现在,url()只表示真正的<url>s。 资料来源: https://developer.mozilla.org/en-US/docs/Web/CSS/url()
真的?这似乎表明CSS样式表(?)中的数据-URI构成了url()的无效值。
但我什么也找不到:
这能证明这一点。
我的印象是,在CSS样式表中,数据URI是url()的一个完全有效的值。
有人能澄清(最好有权威的参考)吗?
N.B.下面的标签写着w3c-validation -我知道它应该读what-wg-validation__。
发布于 2020-04-17 08:17:16
data: URI实际上是RFC 2397的有效URL,不要担心,它们仍然是允许的。
不确定这篇MDN文章在说“例如数据-uri”时试图暗示什么,但我确实将其编辑为URN,因为它实际上是CSS 2中发生了什么。
规范确实将表示法扩展到所有URI,允许统一资源名称也是它的一部分。我不知道他们为什么要做这种改变,但至少可以说,这似乎很奇怪,因为我看不出一个骨灰盒在样式表中是如何有用的。根据规范的措辞,它的作者似乎还不太清楚它会是什么。
URL(统一资源定位器,请参阅RFC1738和RFC1808)提供网络资源的地址。一种预期的识别资源的新方法称为URN (统一资源名称)。它们一起被称为URI(统一资源标识符,参见URI)。该规范使用了术语URI。
https://stackoverflow.com/questions/61248047
复制相似问题