免費的HTML5連載來了《HTML5網頁開發執行個體詳解》連載(三)DOCTYPE和字元集,html5doctype
在2.1.2節中通過新老DOCTYPE的對比,讀者可以清晰地看到HTML 5在精簡舊有結構上做出的努力。DOCTYPE在出現之初主要用於XML中,用作描述XML允許使用的元素、屬性和相片順序。起初HTML借鑒了XML中DOCTYPE的使用方法,並賦予了新用法,如大家熟知的觸發瀏覽器的標準模式。假使在製作一張頁面時,沒有設定DOCTYPE,則瀏覽器會以怪異模式狀態進行處理(即Quirks模式),該模式與標準模式在盒模型、樣式、布局等都存在較大差異。因此,DOCTYPE在製作頁面時是不可或缺的部分。
在上一版本HTML 4標準中,DOCTYPE被分為3種模式:
- 嚴格模式,即嚴格遵循W3C標準的模式,代碼格式如下:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
- 過渡模式,包含了W3C標準的內容,同時還可以使用不被W3C推薦的標籤,如font、b等,而且不可以使用架構元素(即frameset元素),代碼格式如下:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML4.01 Transitional//EN""http://www.w3.org/TR/html4/loose.dtd">
- 架構模式,可以使用架構元素,其他與過渡模式相同,代碼格式如下:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML4.01 Frameset//EN" "http://www.w3.org/TR/html4/frameset.dtd">
提示:舊有的HTML關於DOCTYPE標準,讀者可以參看W3C官方文檔說明,網頁地址:http://www.w3.org/TR/1999/REC-html401-19991224/struct/global.html#h-7.2。雖然之前版本的HTML對DOCTYPE做了重重規定,但真實情況卻是瀏覽器會盡最大的可能渲染對應的頁面,即使可能出現了一些不符合模式的做法,唯一會出現的是瀏覽器會在控制台中顯示一些錯誤警告,這種做法就是常說的瀏覽器容錯性,實則是對市場和使用者的妥協。
故事發展到HTML 5,W3C將DOCTYPE剔除原有雞肋的聲明方式,簡化為如下格式:
<!DOCTYPE html>
對於絕大多數開發人員來說,只需要使用這一種方式就足以滿足日常的開發使用,但如果要考慮到日後的相容和擴充等一系列問題,還需要瞭解W3C在新制定DOCTYPE的一些新規定,主要分為3類:
- 普通模式,即<!DOCTYPE html>
- 棄用模式,聽起來不知所云,其實指的就是對過往模式的相容模式,不過HTML5棄用了之前的過渡模式和架構模式,最終留下了6種書寫格式,代碼如下:
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML4.0//EN">
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"><!DOCTYPE html PUBLIC "-//W3C//DTD HTML4.01//EN"><!DOCTYPE html PUBLIC "-//W3C//DTD HTML4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
- 遺留相容模式,對於過往無法考證規則的一種相容方式,文法格式如下:
<!doctype HTML system"about:legacy-compat">
通過對瀏覽器DOCTYPE的理解,讀者可以熟悉瀏覽器模式的觸發方式,不過就通常開發而言,只需要使用<!DOCTYPEhtml>這一種普通模式。
提示:HTML 5最新3種模式可以查看連結http://dev.w3.org/html5/markup/syntax.html#doctype-syntax。
所謂的字元是對各種文字和符號的總稱,涵蓋了各國文字、標點符號、圖形符號和數字等。字元集是對多個字元的集合,常用的字元集有:ASCII、GB2312、Unicode、ISO等。科學家為了讓電腦準確地處理各種字元集,需要對字元進行編碼,以便電腦能夠識別和儲存各種文字。
在HTML 5出現之前,瀏覽器會根據3種方式確認頁面的編碼格式,按優先順序排列如下:
- 擷取HTTP要求標頭中的Content-Type字元對應的值。
- 使用meta標籤聲明,文法格式如下:
<meta http-equiv="Content-Type"content="text/html; charset=utf-8">
- 外鏈資源使用charset屬性聲明編碼格式,如script標籤中使用文法格式如下:
<script type="text/javascript"src="myscripts.js" charset="UTF-8"></script>
HTML 5出現後,對字元集的使用做了大量的簡化,可以使用以下文法進行字元集聲明:
<meta charset="utf-8">
對於日常使用網站開發而言,結合HTML 5的字元集使用,筆者給出如下建議:
- 最優先使用HTTP要求標頭指定編碼。
- 統一全站字元集編碼,HTML 5推薦UTF-8字元集。
- 使用meta標籤確認字元集編碼,儘可能放在html標籤的第一個子項目位置。
- 第三方引用的指令碼,在不確認字元編碼時,加上charset屬性設定編碼格式。
學習HTML5最好的書就是《HTML5網頁開發執行個體詳解》,用代碼學慣用案例學習,可比看文字有趣多了!!!一本書搞定HTML5,從現在開始。
html5的doctype可以給html4用
html5比html4更簡潔,HTML5簡化了很多細微的文法,例如doctype的聲明,你只需要寫<!doctype html>就行了。HTML5與HTML5,XHTML1相容,但是與SGML不相容。
html5有向下相容的特性,他可以完整的顯示html4的內容,至於你自己寫的標籤,瀏覽器解釋的問題,主要取決與瀏覽器,這個可以通過css來實現。能的。
求採納,謝謝