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

关于在CSS url()中使用数据URI的有效性的澄清,css,standards,w3c-validation,data-uri,Css,Standards,W3c Validation,Data 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级别1中,url()函数表示法仅描述为true 网址。在CSS级别2中,

我正在编写一个预处理组件(在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()
函数表示法仅描述为true 网址。在CSS级别2中,扩展了
url()
的定义来描述 任何URI,例如数据URICSS值和单位级别3返回到 狭义的、最初的定义。现在,
url()
只表示true
s

来源:

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

但我在以下方面什么也找不到:

这就证明了这一点

我的印象是,数据URI对于CSS样式表中的
url()
是完全有效的值

请任何人澄清一下(最好是有权威的参考资料)



N.B.下面的标签显示的是
w3c验证
-我认识到它可能应该显示
什么是wg验证

数据:
URI实际上是根据的有效URL,别担心,它们仍然是允许的

不确定这篇MDN文章在说“比如一个数据uri”时试图暗示什么,但我确实把它编辑成了
URN
,因为它实际上是:

规范确实将符号扩展到了所有URI,允许它也是其中的一部分。。。我不知道他们为什么做了这样的改变,但至少可以说这看起来很奇怪,因为我不知道URN在样式表中有什么用处。。。根据规范的措辞,它的作者似乎还不太清楚它会是什么

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



Ps:规范将其定义为。

url()接受字符串中的“
data:
url”,因此从CSS的角度来看,所有内容都是有效的,如果ressource不可用或数据URI中没有任何内容写得不好,则可能会陷入404。错误URI示例:(数据:image/svg+xml;utf8,svg xmlns=“”version=“1.1”viewBox=“2 0 216 240”xmlns:xlink=“)…如果你在浏览器中打开它,你会得到一个错误谢谢,@TemaniAfif.那么MDN有错误吗?可能没有错,但这是语言和解释的问题。事实上,我不明白他们所说的真实URL是什么意思。我想他们是在区分实际的
URL
和其他类型的
URI
,比如
数据URI。如果你用规格表检查最后一部分,你看不到CSS级别1的任何重大变化。因此,他们明确地说,从级别1到级别2以及级别3没有任何变化。这与他们上面所说的有点矛盾