官术网_书友最值得收藏!

1.3 HTML5語法特性

HTML5以HTML4為基礎,對HTML4進行了全面升級改造。與HTML4相比,HTML5在語法上有很大的變化,具體說明如下。

1.3.1 文檔和標記

1. 內容類型

HTML5的文件擴展名和內容類型保持不變。例如,擴展名仍然為“.html”或“.htm”,內容類型(content-type)仍然為“text/html”。

2. 文檔類型

在HTML4中,文檔類型的聲明方法如下。

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-
    transitional.dtd">

在HTML5中,文檔類型的聲明方法如下。

    <!DOCTYPE html>

當使用工具時,也可以在DOCTYPE聲明中加入SYSTEM識別符,聲明方法如下。

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

在HTML5中,DOCTYPE聲明方式是不區分大小寫的,引號也不區分是單引號還是雙引號。

注意:使用HTML5的DOCTYPE會觸發瀏覽器以標準模式顯示頁面。眾所周知,網頁有多種顯示模式,如怪異模式(Quirks)、標準模式(Standards)。瀏覽器根據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.3.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>
主站蜘蛛池模板: 嘉定区| 灵台县| 北宁市| 民丰县| 洛宁县| 抚远县| 宜兰县| 陵川县| 丽水市| 滕州市| 叶城县| 咸宁市| 霍城县| 望都县| 乌拉特前旗| 阜康市| 寿阳县| 合江县| 将乐县| 中江县| 化德县| 屏山县| 平南县| 太康县| 平邑县| 伊金霍洛旗| 观塘区| 望城县| 陈巴尔虎旗| 潜江市| 兴城市| 汨罗市| 通榆县| 磐安县| 西乌珠穆沁旗| 忻州市| 平泉县| 白城市| 吉首市| 弥勒县| 霸州市|