HTML5 属性值加不加引号?

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

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

<p class=important warning>

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

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

阅读全文 »

HTML5的语法变化

现在HTML5可以说是烫手山芋,一大片的人都在追随这项新技术,虽然正式的标准还没放出来,但浏览器们早已经开始对HTML5进行了实现,大批的前端人员也正在恶补新知识。上个月W3C刚刚宣布了HTML5规范正式定稿。据W3C说完整的HTML5技术标准将在今年正式出炉,预计将会在2014年完成HTML5网络环境的整体部署。可以说HTML5的时代真的近了,对IT人来说,Web App、LBS这些新机会就要来了。

HTML5有大量的新特性。重要的是它完全兼容HTML4和XHTML1,语法上很宽松,完全允许你按照以前的习惯来写,所以,把原先的doctype换成<!DOCTYPE html>,就马上变成了一个HTML5网页。语法上还有一些其他变化,先来看一下。

DOCTYPE

HTML5的doctype非常简洁:

<!DOCTYPE html>
<!-- 大小写不敏感 -->
<!doctype html>

指定字符编码

这个也同样简洁,原来你可能这样写:

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">

HTML5的是这样:

<meta charset="UTF-8">
<!-- 小写也没问题 -->
<meta charset="utf-8">

具有布尔值的属性

disabled和checked这类属性是具有布尔值的,当只写属性名而不指定属性值时,表示属性为true;如果想要设为false,可以不使用该属性,或者将属性名设定为属性值,或者设为空字符串。
阅读全文 »

flight