引用url()的值真的有必要吗?

我应该在样式表中使用以下哪项?

/* Example #1: */ background-image: url(image.png);
/* Example #2: */ background-image: url("image.png");
/* Example #3: */ background-image: url('image.png');

W3C指定什么是正确的方法

GO2020/03/26 16:25:55

根据W3C,三种方法都是合法的。如果名称中有特殊字符(如空格),则应使用第二个或第三个字符。

前端小宇宙2020/03/26 16:25:55

根据Google CSS编码样式

不要在URI值(url())中使用引号。

例外:如果确实需要使用@charset规则,请使用双引号-不允许使用单引号。

乐米亚2020/03/26 16:25:55

最好使用引号,因为最新标准建议使用引号,并且边缘情况较少。

根据最新的CSS值和模块第3级编辑草案(2015年12月18日)

URL是指向资源的指针,是由表示的功能符号<url>a的语法<url>是:
<url> = url( <string> <url-modifier>* )

仅出于遗留原因才支持未引用版本,并且需要特殊的解析规则(用于转义序列等),因此笨重且不支持url修饰符。

这意味着该url(...)语法应该是一种功能符号,它将字符串和url-修饰符作为参数。使用引号表示法(产生字符串标记)将更符合标准,并降低复杂性。

@SimonMourier在最高答案中的评论是错误的,因为他寻找了错误的规格。url-token类型仅推出了针对传统一些特殊的分析规则,所以这就是为什么它没有任何与报价。

蛋蛋L2020/03/26 16:25:55

我有:

a.pic{
    background-image: url(images/img (1).jpg);
}

我花了一段时间才了解到文件名右括号违反了规则。

因此,它不是强制性的,但即使旧浏览器不太了解引用,它也可以使您避免在相当复杂的动态生成页面中头痛。