Web前端开发全程实战:HTML5+CSS3+JavaScript+jQuery+Bootstrap
上QQ阅读APP看书,第一时间看更新

1.4 HTML5语法特性

HTML5以HTML4为基础,对HTML4进行了全面升级改造。与HTML4相比,HTML5在语法上有很大的变化,具体说明如下。

1.4.1 文档和标记

1.内容类型

HTML5的文件扩展名和内容类型保持不变。例如,扩展名仍然为.html或.htm,内容类型(ContentType)仍然为text/html。

2.文档类型

在HTML4中,文档类型的声明方法如下。

在HTML5中,文档类型的声明方法如下。

     <!DOCTYPE html>

当使用工具时,也可以在DOCTYPE声明中加入SYSTEM识别符,声明方法如下。

     <!DOCTYPE HTML SYSTEM "about:legacy-compat">

在HTML5中,DOCTYPE声明方式是不区分大小写的,引号也不区分是单引号还是双引号。

 注意:使用HTML5的DOCTYPE会触发浏览器以标准模式显示页面。众所周知,网页都有多种显示模式,如怪异模式(quirk mode)、标准模式(standard mode)。浏览器根据DOCTYPE来识别该使用哪种解析模式。

3.字符编码

在HTML4中,使用meta元素定义文档的字符编码,如下所示。

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

在HTML5中,继续沿用meta元素定义文档的字符编码,但是简化了charset属性的写法,如下所示。

     <meta charset="UTF-8">

对于HTML5来说,上述两种方法都有效,用户可以继续使用前面一种方式,即通过content元素的属性来指定。但是不能同时混用两种方式。

 注意:在传统网页中,下面标记是合法的。在HTML5中,这种字符编码方式将被认为是错误的。

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

从HTML5开始,对于文件的字符编码推荐使用UTF-8。

1.4.2 宽松的约定

HTML5语法是为了保证与之前的HTML4语法达到最大程度的兼容而设计的。

1.标记省略

在HTML5中,元素的标记可以分为3种类型:不允许写结束标记、可以省略结束标记、开始标记和结束标记全部可以省略。下面简单介绍这3种类型各包括哪些HTML5元素。

第一,不允许写结束标记的元素有area、base、br、col、command、embed、hr、img、input、keygen、link、meta、param、source、track、wbr。

第二,可以省略结束标记的元素有li、dt、dd、p、rt、rp、optgroup、option、colgroup、thead、tbody、tfoot、tr、td、th。

第三,可以省略全部标记的元素有html、head、body、colgroup、tbody。

 提示:不允许写结束标记的元素是指,不允许使用开始标记与结束标记将元素括起来的形式,只允许使用<元素/>的形式进行书写。例如:

 错误的书写方式。

     <br></br>

 正确的书写方式。

     <br/>

HTML5之前的版本中<br>这种写法可以继续沿用。

可以省略全部标记的元素是指元素可以完全被省略。注意,该元素还是以隐式的方式存在的。例如,将body元素省略时,但它在文档结构中还是存在的,可以使用document.body进行访问。

2.布尔值

对于布尔型属性,如disabled与readonly等,当只写属性而不指定属性值时,表示属性值为true;如果属性值为false,可以不使用该属性。另外,要想将属性值设定为true时,也可以将属性名设定为属性值,或将空字符串设定为属性值。

【示例1】几种正确的布尔值书写方法。

3.属性值

属性值可以加双引号,也可以加单引号。HTML5在此基础上做了一些改进,当属性值不包括空字符串、<、>、=、单引号、双引号等字符时,属性值两边的引号可以省略。

【示例2】下面属性值写法都是合法的。

     <input type="text">
     <input type='text'>
     <input type=text>