关于在CSS url()中使用数据URI的有效性的说明



我正在编写一个预处理组件(用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 Level 1中,url()函数表示法仅描述为trueURL。在CSS Level 2中,url()的定义被扩展为描述任何URI,例如数据URICSS值和单位级别3返回较窄的初始定义。现在,url()仅表示真正的<url>s。

来源:https://developer.mozilla.org/en-US/docs/Web/CSS/url((

真的吗?这似乎表明数据URI在CSS样式表(?(中构成url()的无效值

但我在中找不到任何东西

  • https://www.w3.org/TR/css-values-3/

支持这一点。

我的印象是DataURI对于CSS样式表中的url()是完全有效的值。

有人能澄清一下吗(最好是有权威的参考资料(?


N.B.下面的标签读w3c-validation-我认为它可能读what-wg-validation

data:URI实际上是根据RFC 2397的有效URL,不用担心,它们仍然是允许的。

不确定这篇MDN文章在说"诸如数据uri">,但我确实将其编辑为URN,因为它实际上是CSS 2:中发生的事情

规格确实扩展了<url>所有URI的符号,通过允许统一资源名称也成为其中的一部分。。。我不知道他们为什么这么做,但至少可以说,这似乎很奇怪,因为我看不出URN在样式表中有什么用处。。。根据说明书的措辞,它的作者似乎还不太清楚它会是什么

URL(统一资源定位器,请参阅[RFC1738]和[RFC1808](提供Web上资源的地址。一种预期的识别资源的新方法被称为URN(统一资源名称(。它们一起被称为URI(统一资源标识符,请参阅[URI](。本规范使用术语URI。


Ps:规范将其定义为";CCD_ 11 URL";从获取API。

最新更新