- HTML5 移動Web開發從入門到精通(微課精編版)
- 前端科技
- 1077字
- 2019-11-15 20:21:42
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>
- 一步一步學Spring Boot 2:微服務項目實戰
- Delphi程序設計基礎:教程、實驗、習題
- Java EE 6 企業級應用開發教程
- C語言程序設計
- Big Data Analytics
- Gradle for Android
- 可解釋機器學習:模型、方法與實踐
- Mastering Android Development with Kotlin
- Python深度學習:基于TensorFlow
- C# Multithreaded and Parallel Programming
- C++語言程序設計
- UML2面向對象分析與設計(第2版)
- Maven for Eclipse
- 啊哈C語言?。哼壿嫷奶魬穑ㄐ抻啺妫?/a>
- Java 11 and 12:New Features