调整字号

HTML5 属性值加不加引号?

在 HTML4 的时候,语法是很宽松的,HTML 的属性值(attribute value)既可以加引号也可以不加。到了 XHTML 的时候,为了更好地兼容 XML 格式,又引入了严格的语法,规定属性值必须用双引号括起来。眼下 XHTML 大势已去,我们终于可以忘掉那些繁琐的限制了,HTML5 回归了宽松的语法,属性值加单引号、双引号还是不加,全看程序员的喜好。你随便写,剩下的只要交给浏览器去解析。

选择不加引号,的确能省下键盘敲击次数,还能省下一部分字节,这是好的一方面,不过也并不是在所有情况下都可以省略引号,例如:

<p class=important warning>

这个 p 元素在浏览器看来,class 值为 important,另外还有一个属性 warning,尽管不是 W3C 标准里的属性,但浏览器会把它当做一个自定义的布尔属性。所以如果属性值里含有空格时必须加引号。另外,含有以下字符时都必须括起来:单引号')、双引号")、大小于号<>)、等号=)、反引号`)。

如果你是不加引号党,就要注意这几个坑。不加引号有不加引号的好处,但如果保持一个用引号的习惯,就不需要费时间去考虑以上这些问题。主要看个人或团队的习惯。

另外在 CSS 里也有可以省略引号的情况。url() 里的网址可以加单引号或双引号,也可以不加。如果网址中含有括号单双引号,需要放在反斜杠后面转义。另外据 StackOverflow 网友所说,有些浏览器(包括 Chrome Mac)遇到加引号的网址会发出两次请求,例如 background-image: url("image.png"),首先会请求 "image.png",然后再请求 image.png。所以这里的引号一般来说就不要加了。

CSS3 属性选择器里的属性值也可以选择加与不加,a[href=foo.html]a[href='foo.html']a[href="foo.html"] 都是对的。但这里的属性值如果不加引号,必须符合 CSS 的标识符规则,合法的字符范围是 [-_a-zA-Z0-9\u00A0-\u10FFFF],并且不能以数字、两个短横线(-)或短横线加数字作为开头。

还没有评论,沙发空缺中……
上一篇
«
下一篇
»
flight