HTML5 速覽
HTML5 速覽
一. HTML5 元素分類
HTML賦值文檔內容的結構和含義, 內容呈現由css樣式控制
元素選用原則
-
少亦可為多
標記只應該應內容對語義的需要使用. 有條經驗法則是: 問問自己打算如何發揮一個元素的語義作用, 如果不能馬上答出就不用這個元素
-
別誤用元素
對內容進行標記時, 只宜將元素用於他們原定的用途, 不要創造自有的語義. 如果找不到適合自己所要含義的元素, 可以考慮使用通用元素( 如span或div ), 並且用全局屬性class表明其含義. css樣式不是類屬性的唯一用途.
-
具體為佳
用來標記內容的元素應該選擇最為具體的那個. 如果已有元素能恰當表明內容的類型, 就不要使用通用元素. html4中存在依賴div構建頁面結構的傾向, 不好維護.
-
對用戶不要想當然
呈現與語義分離原則的目的完全是為了讓HTML文檔更易於程式化處理, 所以隨著HTML5的採用和實現愈加廣泛, HTML內容的這種使用會日益增多. 如果不關心標記的準確性和一致性, 這樣的HTML文檔處理起來更為困難, 用戶能為其找到的用戶也很有限.
元素速覽( *** )
文檔和元數據元素
用途: 創建HTML文檔的上層建築, 向瀏覽器說明文檔的情況, 定義腳本程式和css樣式, 提供瀏覽器禁用腳本時要顯示的內容
元素 | 說明 | 類型 | h5新增或變化 |
---|---|---|---|
base | 設置相對URL的基礎 | 元數據 | 無變化 |
body | 表示HTML文檔的內容 | 無 | 有變化 |
DOCTYPE | 表示HTML文檔的開始 | 無 | 有變化 |
head | 包含文檔的元數據 | 無 | 無變化 |
html | 表示文檔中HTML部分的開始 | 無 | 有變化 |
link | 定義與外部資源(通常是樣式表或網站圖標)的關係 | 元數據 | 有變化 |
meta | 提供關於文檔的資訊 | 元數據 | 有變化 |
noscript | 包含瀏覽器禁用腳本或不支援腳本時顯示的內容 | 元數據, 短語 | 無變化 |
script | 定義腳本語言, 可以是文檔內嵌的也可以是外部文件中的 | 元數據, 短語 | 有變化 |
style | 定義css樣式 | 元數據 | 有變化 |
title | 設置文檔標題 | 元數據 | 無變化 |
文本元素
用途: 為內容提供基本的結構和含義
元素 | 說明 | 類型 | h5新增或變化 |
---|---|---|---|
a | 生成超鏈接 | 短語, 流 | 有變化 |
abbr | 縮略語 | 短語 | 無變化 |
b | 不帶強調或著重意味地標記一段文字 | 短語 | 有變化 |
br | 表示換行 | 短語 | 無變化 |
cite | 表示其他作品的標題 | 短語 | 有變化 |
code | 表示電腦程式碼片段 | 短語 | 無變化 |
del | 表示從文檔中刪除的文字 | 短語, 流 | 新增 |
dfn | 表示術語定義 | 短語 | 無變化 |
em | 表示著重強調的一段文字 | 短語 | 無變化 |
i | 表示與周邊內容秉性不同的一段文字, 比如來自另一種語言的詞語 | 短語 | 有變化 |
ins | 表示加入文檔的文字 | 短語, 流 | 無變化 |
kbd | 表示用戶輸入內容 | 短語 | 無變化 |
mark | 表示一段因為與上下文中另一詞語相關而被突出顯示的內容 | 短語 | 新增 |
q | 表示引自他處的內容 | 短語 | 無變化 |
rp | 與ruby元素結合使用, 標記括弧 | 短語 | 新增 |
rt | 與ruby元素結合使用, 標記注音符號 | 短語 | 新增 |
ruby | 表示位於表意文件上方或右方的注音符號 | 短語 | 新增 |
s | 表示文字已不再準確 | 短語 | 有變化 |
samp | 表示電腦程式的輸出內容 | 短語 | 無變化 |
small | 表示小號字體內容 | 短語 | 有變化 |
span | 一個沒有自己語義的通用元素 | 短語 | 無變化 |
strong | 表示重要內容 | 短語 | 無變化 |
sub | 表示下標文字 | 短語 | 無變化 |
sup | 表示上標文字 | 短語 | 無變化 |
time | 表示時間或者日期 | 短語 | 新增 |
u | 不帶強調或著重意味地標記一段文字 | 短語 | 有變化 |
var | 表示程式或電腦系統中的變數 | 短語 | 無變化 |
wbr | 表示可安全換行的地方 | 短語 | 新增 |
對內容分組
用途: 將相關內容分組
元素 | 說明 | 類型 | h5新增或變化 |
---|---|---|---|
blockquote | 表示引自他處的大段內容 | 流 | 無變化 |
dd | 用在dl元素之中, 表示定義 | 無 | 無變化 |
div | 一個沒有任何既定語義的通用元素, 與span類似 | 流 | 無變化 |
dl | 表示包含一系列術語和定義的說明列表 | 流 | 無變化 |
dt | 用在dl元素之中, 表示術語 | 無 | 無變化 |
figcaption | 發送figure元素的標題 | 無 | 新增 |
figure | 表示圖片 | 流 | 新增 |
hr | 表示段落級別的主題轉換 | 流 | 有變化 |
li | 用在ul, ol和menu元素中, 表示列表項 | 無 | 有變化 |
ol | 表示有序列表 | 流 | 有變化 |
p | 表示段落 | 流 | 有變化 |
pre | 表示其格式應被保留的內容, 如code | 流 | 無變化 |
ul | 表示無序列表 | 流 | 有變化 |
劃分內容
用途: 劃分內容, 讓每個概念, 觀點或主題彼此分隔開. 它們中有許多是新增的. 這些元素為分離元素的含義和外觀做了大量基礎性工作
元素 | 說明 | 類型 | h5新增或變化 |
---|---|---|---|
address | 表示文檔或article的聯繫資訊 | 流 | 新增 |
article | 表示一段獨立的內容 | 流 | 新增 |
aside | 表示與周邊內容稍有牽涉的內容 | 流 | 新增 |
details | 生成一個區域, 用戶將其展開可以獲得更多細節知識 | 流 | 新增 |
footer | 表示尾部 | 流 | 新增 |
h1-h6 | 表示標題 | 流 | 無 |
header | 表示首部 | 流 | 新增 |
hgroup | 將一組標題組織在一起, 以便文檔大綱只顯示其中第一個標題 | 流 | 新增 |
nav | 表示有意集中在一起的導航元素 | 流 | 新增 |
section | 表示一個重要的概念或主題 | 流 | 新增 |
summary | 用在details元素中, 表示該元素內容的標題或說明 | 無 | 新增 |
製表
用途: 製作顯示數據的表格. 表格在html5中的主要變化時不能再用來控制頁面布局, 這項工作轉交給了css
元素 | 說明 | 類型 | h5新增或變化 |
---|---|---|---|
caption | 表示表格標題 | 無 | 有變化 |
col | 表示一列 | 無 | 有變化 |
colgroup | 表示一組列 | 無 | 有變化 |
table | 表示表格 | 流 | 有變化 |
tbody | 表示表格主體 | 無 | 有變化 |
td | 表示單元格 | 無 | 有變化 |
tfoot | 表示表腳 | 無 | 有變化 |
th | 表示標題行單元格 | 無 | 有變化 |
thead | 表示標題行 | 無 | 有變化 |
tr | 表示一行單元格 | 無 | 有變化 |
創建表單
用途: 創建html表單, 以便獲取用戶的輸入數據
元素 | 說明 | 類型 | h5新增或變化 |
---|---|---|---|
button | 表示可用來提交或重置表單的按鈕(或一般按鈕) | 短語 | 有變化 |
datalist | 定義一組提供給用戶的建議值 | 流 | 有變化 |
fieldset | 表示一組表單元素 | 流 | 有變化 |
form | 表示html表單 | 流 | 有變化 |
input | 表示用來收集用戶輸入數據的控制項 | 短語 | 有變化 |
keygen | 生成一對公鑰和私鑰 | 短語 | 新增 |
label | 表示表單元素的說明標籤 | 短語 | 有變化 |
legend | 表示fieldset元素的說明性標籤 | 無 | 無變化 |
optgroup | 表示一組相關的option元素 | 無 | 無變化 |
option | 表示供用戶選擇的一個選項 | 無 | 無變化 |
output | 表示計算結果 | 短語 | 新增 |
select | 給用戶提供一組固定的選項 | 短語 | 有變化 |
textarea | 用戶可以用它輸入多行文字 | 短語 | 有變化 |
嵌入內容
用途: 在html文檔中嵌入內容
元素 | 說明 | 類型 | h5新增或變化 |
---|---|---|---|
area | 表示一個用於客戶端分區響應圖的區域 | 短語 | 有變化 |
audio | 表示一個音頻資源 | 無 | 新增 |
canvas | 生成一個動態的圖形畫布 | 短語, 流 | 新增 |
embed | 用插件在html文檔中嵌入內容 | 短語 | 新增 |
iframe | 通過創建一個瀏覽上下文在一個文檔中嵌入另一個文檔 | 短語 | 有變化 |
img | 嵌入影像 | 短語 | 有變化 |
map | 定義客戶端分區響應圖 | 短語, 流 | 有變化 |
meter | 嵌入數值在許可值範圍內的圖形表示 | 短語 | 新增 |
object | 在html文檔中嵌入內容. 也可用於生成瀏覽器上下文 和生成客戶端分區響應圖 |
短語, 流 | 有變化 |
param | 表示將通過object元素傳遞給插件的參數 | 無 | 無變化 |
progress | 嵌入目標進展或任務完成情況的圖形表示 | 短語 | 新增 |
source | 表示媒體資源 | 無 | 新增 |
svg | 表示結構化矢量內容 | 無 | 新增 |
track | 表示媒體的附加軌道 | 無 | 新增 |
video | 表示影片資源 | 無 | 新增 |
二. HTML5 不常見的全局屬性
全局屬性( global attribute ), 用來配置所有元素共有的行為
accesskey
設定選擇元素的快捷鍵
<form action="">
Name: <input type="text" name="name" accesskey="t"><br>
Password: <input type="password" name="password" accesskey="m"><br>
<input type="submit" value="登錄" accesskey="n">
</form>
按下 alt+t, 焦點便轉移到name輸入框上
contenteditable
這個是html5中新增的屬性, 設置後用戶能修改內容
<p contenteditable="true">今天天氣很不錯</p>
效果如下
dir
規定元素中文字的方向, 有效值有 ltr(從左到右), rtl(從右到左)
<p dir="rtl">今天天氣很不錯</p>
spellcheck屬性
spellcheck屬性用來表明瀏覽器是否應該對元素的內容進行拼寫檢查, 用於用戶編輯文字時有幫助
三. HTML5新增元素體驗
文本元素
del
屬性cite: 指定原因文檔的url, datetime: 設置修改時間
<p>今天天氣很 <del>不錯</del> 糟糕</p>
mark
下面有段話是重點, <mark>這段話需要重點標註</mark>
ruby, rt和rp
rt: 用來標記注音符號, rp: 用來標記供不支援注音符號特性的瀏覽器顯示在注音符號前後的括弧
<rudy>魑<rp>(</rp><rt>chī</rt><rp>)</rp></rudy>
<rudy>魅<rp>(</rp><rt>mèī</rt><rp>)</rp></rudy>
<rudy>魍<rp>(</rp><rt>wǎng</rt><rp>)</rp></rudy>
<rudy>魎<rp>(</rp><rt>liǎng</rt><rp>)</rp></rudy>
time
屬性 datetime: 以RFC3339指明日期
屬性 pudate: 如果是true, 表明time表示整個html或離該元素最近的article的發布日期
這篇部落格發布的日期是 <time datetime="2020-12-6">2020-12-6</time>
wbr
表示超過當前瀏覽器窗口的內容適合再此換行, 換不換行還是由瀏覽器決定
內容分組
figcaption和figure
<figure>
<figcaption>
說明 圖1.1
</figcaption>
<code>
line1;
line2
</code>
</figure>
劃分內容
基本都是h5新增元素, 除了 summary 都是塊元素, 按實際用途使用標籤
創建表單
keygen
這個特性還未得到很好的支援, 暫不建議使用
output
<form action="" oninput="res.value = number1.valueAsNumber * number2.valueAsNumber">
<fieldset>
<legend>output乘法</legend>
<input type="number" name="number1"> *
<input type="number" name="number2"> =
<output for="number1 number2" name="res"></output>
</fieldset>
</form>
嵌入內容
audio元素
<audio controls autoplay>
<source src="url.ogg">
<source src="url.mp3">
<source src="url.wav">
該音頻不能被播放
</audio>
embed
type指定內容的mime類型
<embed src="內容地址" type="application/x-shockwave-flash"
width="500" height="300" allowfullscreen="true">
cavas
這個涉及的知識點較多, 就不在這演示