我应该在样式表中使用下列哪个?
/* Example #1: */ background-image: url(image.png);
/* Example #2: */ background-image: url("image.png");
/* Example #3: */ background-image: url('image.png');
W3C将什么指定为正确的方式?
我应该在样式表中使用下列哪个?
/* Example #1: */ background-image: url(image.png);
/* Example #2: */ background-image: url("image.png");
/* Example #3: */ background-image: url('image.png');
W3C将什么指定为正确的方式?
当前回答
W3C说引号是可选的,你的三种方式都是合法的。
开头和结尾的引号只需要是相同的字符。
如果你的URL中有特殊字符,你应该使用引号或转义字符(见下文)。
语法和基本数据类型
URI值的格式是'url('后跟可选空格,后跟可选单引号(')或双引号(")字符,后跟URI本身,后跟可选单引号(')或双引号(")字符,后跟可选空格,后跟')'。两个引号字符必须相同。
转义特殊字符:
一些出现在非引号URI中的字符,如圆括号、空格字符、单引号(')和双引号("),必须用反斜杠转义,这样得到的URI值就是一个URI令牌:'\(','\)'。
其他回答
例子2或3是最好的:
W3C: URI值的格式是'url('后跟可选空格,后跟可选单引号(')或双引号(")字符,后跟URI本身,后跟可选单引号(')或双引号(")字符,后跟可选空格,后跟')'。两个引号字符必须相同。
从同样的解释中注意到,如果有适当的字符转义,例1是可以接受的。
W3C说引号是可选的,你的三种方式都是合法的。
开头和结尾的引号只需要是相同的字符。
如果你的URL中有特殊字符,你应该使用引号或转义字符(见下文)。
语法和基本数据类型
URI值的格式是'url('后跟可选空格,后跟可选单引号(')或双引号(")字符,后跟URI本身,后跟可选单引号(')或双引号(")字符,后跟可选空格,后跟')'。两个引号字符必须相同。
转义特殊字符:
一些出现在非引号URI中的字符,如圆括号、空格字符、单引号(')和双引号("),必须用反斜杠转义,这样得到的URI值就是一个URI令牌:'\(','\)'。
根据谷歌CSS编码风格
不要在URI值中使用引号(url())。 例外:如果你确实需要使用@charset规则,使用双引号-单引号是不允许的。
根据W3C的规定,有三种方法是合法的。如果名称中有特殊字符(如空格),则应该使用第二个或第三个字符。
最好使用引号,因为它是最新标准的推荐,并且有更少的边缘情况。
根据最新的CSS价值和模块第3级编辑草案(2015年12月18日)
URL是一个指向资源的指针,是一个函数符号,用< URL >表示。<url>的语法是: <url> = url(<string> <url-modifier>*)
不带引号的版本仅在遗留原因下得到支持,并且需要特殊的解析规则(用于转义序列等),因此很麻烦,不支持url修饰符。
这意味着,url(…)语法应该是一种函数符号,它接受字符串和url修饰符作为参数。使用引号表示法(它产生一个字符串令牌)将更符合标准,并引入更少的复杂性。
@SimonMourier在顶部答案中的评论是错误的,因为他寻找了错误的规范。url-token类型仅为遗留的特殊解析规则引入,所以这就是为什么它与引号没有任何关系。