调整字号

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,可以不使用该属性,或者将属性名设定为属性值,或者设为空字符串。

<!-- 表示checked为false -->
<input type="checkbox">
<!-- 以下三种都表示checked为true -->
<input type="checkbox" checked>
<input type="checkbox" checked="checked">
<input type="checkbox" checked="">

属性值的引号

以前的属性值两边,一般都会写上双引号,单引号也可以。HTML5中,当属性值不包含空字符串、<>=、单引号、双引号时,属性值两边的引号可以省略。以下三种都是可以的:

<input type="checkbox">
<input type='checkbox'>
<input type=checkbox>

省略的标签

HTML5中,元素的标签有时可以省略。根据不同的元素,有的可以省略起始标签,有的可以省略结束标签,还有的可以全部省略。例如下面的写法都没有问题:

<ul>
  <li>Fantastic
  <li>Great
</ul>
<p>非常省事。
<p>It’s awesome!

以前的HTML4语法非常宽松,即便漏掉结束标签也不会产生错误,HTML5对这些实现了兼容,并且拓展,像htmlbody这样的元素甚至可以完全不写。但针对具体的情形还是有详细的要求,可以参考WHATWG网站。

可以看到,原先XHTML里的那些严格的语法又被放弃了,开发人员完全可以按自己的习惯,想怎么写就怎么写,就让浏览器自己去想要怎么解析吧,哈哈。

还没有评论,沙发空缺中……
flight