HTML5 速覽

HTML5 速覽


一. HTML5 元素分類

HTML賦值文檔內容的結構和含義, 內容呈現由css樣式控制

元素選用原則

  1. 少亦可為多

    標記只應該應內容對語義的需要使用. 有條經驗法則是: 問問自己打算如何發揮一個元素的語義作用, 如果不能馬上答出就不用這個元素

  2. 別誤用元素

    對內容進行標記時, 只宜將元素用於他們原定的用途, 不要創造自有的語義. 如果找不到適合自己所要含義的元素, 可以考慮使用通用元素( 如span或div ), 並且用全局屬性class表明其含義. css樣式不是類屬性的唯一用途.

  3. 具體為佳

    用來標記內容的元素應該選擇最為具體的那個. 如果已有元素能恰當表明內容的類型, 就不要使用通用元素. html4中存在依賴div構建頁面結構的傾向, 不好維護.

  4. 對用戶不要想當然

    呈現與語義分離原則的目的完全是為了讓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

這個涉及的知識點較多, 就不在這演示

Tags: