Answers:
W3C表示引号是可选的,您使用的所有三种方式都是合法的。
开头和结尾的引号只需是相同的字符。
如果您的URL中包含特殊字符,则应使用引号或转义字符(请参见下文)。
URI值的格式为'url(',后跟可选的空白,后跟可选的单引号(')或双引号(“)字符,然后是URI本身,然后是可选的单引号(')或双引号(“)字符,后跟可选的空格,后跟')'。两个引号字符必须相同。
转义特殊字符:
出现在未加引号的URI中的某些字符,例如括号,空格字符,单引号(')和双引号(“),必须用反斜杠转义,以便得到的URI值是URI标记:'\(', '\)'。
url-token
铁路模式),而当前的候选推荐书(2014年2月)则是:w3.org/TR / css-syntax-3我想他们想促进转义序列而不是引号的使用
最好使用引号,因为最新标准建议使用引号,并且边缘情况较少。
根据最新的CSS值和模块第3级编辑草案(2015年12月18日)
URL是指向资源的指针,是由表示的功能符号
<url>
。a的语法<url>
是:
<url> = url( <string> <url-modifier>* )
仅出于遗留原因才支持未引用版本,并且需要特殊的解析规则(用于转义序列等),因此笨重且不支持url修饰符。
这意味着该url(...)
语法应该是一种功能符号,它以字符串和url-修饰符作为参数。使用引号表示法(产生字符串标记)将更符合标准,并降低复杂性。
@SimonMourier在最高答案中的评论是错误的,因为他寻找了错误的规格。该url-token
类型仅推出了针对传统一些特殊的分析规则,所以这就是为什么它没有任何与报价。
这是W3 CSS 2.1规范所说的:
URI值的格式为'url(',后跟可选的空白,后跟可选的单引号(')或双引号(“)字符,然后是URI本身,然后是可选的单引号(')或双引号(“)字符,后跟可选的空格,后跟')'。两个引号字符必须相同。
因此,您提出的所有3个示例都是正确的,但我会选择的第一个示例是第一个示例,因为您使用的字符更少,因此生成的CSS文件将更小,从而减少了带宽使用量。
这似乎并不重要,但是高流量的网站倾向于节省带宽和大量的CSS文件,并且在其中的url引用选择使文件更小的选项是有意义的...即使没有优势不这样做。
注意:如果网址包含括号,逗号,空格字符,单引号或双引号,则可能必须转义字符。这可能会使网址比仅使用引号(需要较少的转义)更长。因此,您可能只想在转义的开销不会使网址比仅使用引号长的情况下才使用不带引号的Css文件(这非常少见)。
但是,我不希望任何人甚至考虑这些极端情况……CSS优化器将为您处理此问题……(但是,如果您实际上在编写CSS优化器:P,请确保您需要了解所有这些信息)
请勿在URI值(url())中使用引号。
例外:如果确实需要使用@charset规则,请使用双引号-不允许使用单引号。