Web 世界中存在許多不一樣的文檔。只有瞭解文檔的類型,瀏覽器才能正確地顯示文檔。html
HTML 也有多個不一樣的版本,只有徹底明白頁面中使用的確切 HTML 版本,瀏覽器才能徹底正確地顯示出 HTML 頁面。這就是 <!DOCTYPE> 的用處。canvas
<!DOCTYPE> 不是 HTML 標籤。它爲瀏覽器提供一項信息(聲明),即 HTML 是用什麼版本編寫的。瀏覽器
在 HTML 4.01 中,<!DOCTYPE> 聲明引用 DTD,由於 HTML 4.01 基於 SGML(標準通用標記語言)。DTD 規定了標記語言的規則,這樣瀏覽器才能正確地呈現內容。安全
HTML5 不基於 SGML,因此不須要引用 DTD。ruby
在 HTML 4.01 中有三種 <!DOCTYPE> 聲明。在 HTML5 中只有一種。框架
<!DOCTYPE html>
HTML 4.01 Strict:該 DTD 包含全部 HTML 元素和屬性,但不包括展現性的和棄用的元素(好比 font)。不容許框架集(Framesets)。less
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
HTML 4.01 Transitional:該 DTD 包含全部 HTML 元素和屬性,包括展現性的和棄用的元素(好比 font)。不容許框架集(Framesets)。異步
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
HTML 4.01 Frameset:該 DTD 等同於 HTML 4.01 Transitional,但容許框架集內容。async
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN" "http://www.w3.org/TR/html4/frameset.dtd">
XHTML 1.0 Strict:該 DTD 包含全部 HTML 元素和屬性,但不包括展現性的和棄用的元素(好比 font)。不容許框架集(Framesets)。必須以格式正確的 XML 來編寫標記。ide
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
XHTML 1.0 Transitional:該 DTD 包含全部 HTML 元素和屬性,包括展現性的和棄用的元素(好比 font)。不容許框架集(Framesets)。必須以格式正確的 XML 來編寫標記。
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
XHTML 1.0 Frameset:該 DTD 等同於 XHTML 1.0 Transitional,但容許框架集內容。
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd">
XHTML 1.1:該 DTD 等同於 XHTML 1.0 Strict,但容許添加模型(例如提供對東亞語系的 ruby 支持)。
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
標籤 | 描述 |
---|---|
格式 | |
<bdi> |
容許您設置一段文本,使其脫離其父元素的文本方向設置。 |
<mark> |
定義帶有記號的文本。 |
<meter> |
定義度量衡。僅用於已知最大和最小值的度量。 |
<progress> |
定義運行中的任務進度(進程)。 |
<rp> |
定義不支持 ruby 元素的瀏覽器所顯示的內容。 |
<rt> |
定義字符(中文註音或字符)的解釋或發音。 |
<ruby> |
定義 ruby 註釋(中文註音或字符)。 |
<time> |
定義一個日期/時間 |
<wbr> |
規定在文本中的何處適合添加換行符。 |
表單 | |
<datalist> |
規定了 input 元素可能的選項列表。 |
<keygen> |
規定用於表單的密鑰對生成器字段。 |
<output> |
定義一個計算的結果 |
圖像 | |
<canvas> |
經過腳本(一般是 JavaScript)來繪製圖形(好比圖表和其餘圖像)。 |
<figcaption> |
定義figure元素的標題 |
<figure> |
figure 標籤用於對元素進行組合。 |
Audio/Video | |
<audio> |
定義聲音,好比音樂或其餘音頻流。 |
<source> |
定義media元素 (<video> 和 <audio>)的媒體資源。media |
<track> |
爲媒體(<video> 和 <audio>)元素定義外部文本軌道。 |
<video> |
定義一個音頻或者視頻 |
連接 | |
<nav> |
定義導航連接 |
列表 | |
<command> |
定義用戶可能調用的命令(好比單選按鈕、複選框或按鈕)。 |
樣式/節 | |
<header> |
定義一個文檔頭部部分 |
<footer> |
定義一個文檔底部 |
<section> |
定義了文檔的某個區域 |
<article> |
定義一個文章內容 |
<aside> |
定義其所處內容以外的內容。 |
<details> |
定義了用戶可見的或者隱藏的需求的補充細節。 |
<dialog> |
定義一個對話框或者窗口 |
<summary> |
定義一個可見的標題。 當用戶點擊標題時會顯示出詳細信息。 |
程序 | |
<embed> |
定義了一個容器,用來嵌入外部應用或者互動程序(插件)。 |
<script defer src=".....js" onload="alert('a')"></script> <script async src=".....js" onload="alert('b')"></script>
<link rel="icon" href="url..." type="圖片名稱" sizes="16*16">
屬性 | 描述 |
---|---|
contenteditable |
規定是否可編輯元素的內容。 |
contextmenu |
指定一個元素的上下文菜單。當用戶右擊該元素,出現上下文菜單 |
data-* |
用於存儲頁面的自定義數據 |
draggable |
指定某個元素是否能夠拖動 |
dropzone |
指定是否將數據複製,移動,或連接,或刪除 |
hidden |
hidden 屬性規定對元素進行隱藏。 |
spellcheck |
檢測元素是否拼寫錯誤 |
translate |
指定是否一個元素的值在頁面載入時是否須要翻譯 |