聲明
Web 世界中存在許多不同的文檔。只有了解文檔的類型,瀏覽器才能正確地顯示文檔。
HTML 也有多個不同的版本,只有完全明白頁面中使用的確切 HTML 版本,瀏覽器才能完全正確地顯示出 HTML 頁面。這就是 <!DOCTYPE> 的用處。
<!DOCTYPE> 不是 HTML 標簽。它為瀏覽器提供一項信息(聲明),即 HTML 是用什么版本編寫的。
在 HTML 4.01 中,<!DOCTYPE> 聲明引用 DTD,因為 HTML 4.01 基於 SGML(標准通用標記語言)。DTD 規定了標記語言的規則,這樣瀏覽器才能正確地呈現內容。
HTML5 不基於 SGML,所以不需要引用 DTD。
在 HTML 4.01 中有三種 <!DOCTYPE> 聲明。在 HTML5 中只有一種。
常用的DOCTYPE 聲明
- HTML 5
<!DOCTYPE html>
-
HTML 4.01 Strict:該 DTD 包含所有 HTML 元素和屬性,但不包括展示性的和棄用的元素(比如 font)。不允許框架集(Framesets)。
<!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,但允許框架集內容。
<!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 來編寫標記。
<!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> |
定義了一個容器,用來嵌入外部應用或者互動程序(插件)。 |
1、結構標簽
2、表單標簽
3、媒體標簽
4、其他功能標簽
新增的屬性
<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">
<iframe>新增屬性
- <!--seamless定義框架無邊框 無邊距-->
- <!--srcdoc的顯示級別比sandbox高-->
- <!--sandbox用來規定一個內嵌框架的安全級別-->
- <!--sandbox="allow-forms:允許提交表單"-->
- <!--sandbox="allow-origin:允許是相同的源"-->
- <!--sandbox="allow-scripts:允許執行腳本"-->
- <!--sandbox="allow-top-navigation:允許使外面的頁面進行跳轉"-->
其他屬性
- manifest屬性:定義頁面需要用到的離線應用文件,一般放在<html>標簽里
- charset屬性:meta屬性之一,定義頁面的字符集
- sizes屬性:<link>新增屬性,當link的rel="icon"時,用以設置圖標大小
- base屬性:<base href="http://localhost/" target="_blank">表示當在新窗口打開一個頁面時,會將href中的內容作為前綴添加到地址前
- defer屬性:script標簽屬性,表示腳本加載完畢后,只有當頁面也加載完畢才執行(推遲執行)
- async屬性:script標簽屬性,腳本加載完畢后馬上執行(運行過程中瀏覽器會解析下面的內容),即使頁面還沒有加載完畢(異步執行)
- media屬性:<a>元素屬性:表示對何種設備進行優化
- hreflang屬性:<a>的屬性,表示超鏈接指向的網址使用的語言
- ref屬性:<a>的屬性,定義超鏈接是否是外部鏈接
- reversed屬性:<ol>的屬性,定義序號是否倒敘
- start屬性:<ol>的屬性,定義序號的起始值
- scoped屬性:內嵌CSS樣式的屬性,定義該樣式只局限於擁有該內嵌樣式的元素,適用於單頁開發
HTML5全局屬性
屬性 | 描述 |
---|---|
contenteditable |
規定是否可編輯元素的內容。 |
contextmenu |
指定一個元素的上下文菜單。當用戶右擊該元素,出現上下文菜單 |
data-* |
用於存儲頁面的自定義數據 |
draggable |
指定某個元素是否可以拖動 |
dropzone |
指定是否將數據復制,移動,或鏈接,或刪除 |
hidden |
hidden 屬性規定對元素進行隱藏。 |
spellcheck |
檢測元素是否拼寫錯誤 |
translate |
指定是否一個元素的值在頁面載入時是否需要翻譯 |