列表元素
無序列表:網頁中最常用的列表,其各個列表項之間沒有順序級別之分,通常是並列的。其基本語法格式:
<ul>
<li>列表項1</li>
<li>列表項2</li>
<li>列表項3</li>
...
</ul>
有序列表:有排列順序的列表,其各個列表項按照一定的順序排列。其基本語法格式:
<ol>
<li>列表項1</li>
<li>列表項2</li>
<li>列表項3</li>
...
</ol>
定義列表:用於對術語或名詞進行解釋和描述。與無需列表不同,定義列表的列表項前沒有任何項目符號。其基本語法格式:
<dl>
<dt>名詞1</dt>
<dd>名詞1解釋1</dd>
<dd>名詞1解釋2</dd>
...
<dt>名詞2</dt>
<dd>名詞2解釋1</dd>
<dd>名詞2解釋2</dd>
...
</dl>
結構元素
HTML5中所有元素都是有結構性的,且這些元素與塊元素非常相似。下面將介紹常用的結構性元素。
1.header元素
HTML5中的header元素是一種具有引導和導航作用的結構元素,該元素可以包含所有通常放在頁面頭部的內容。header元素通常用來放置整個頁面或頁面內的一個內容區塊的標題,也可以包含網站Logo圖片、搜索表單或者其他相關內容。其基本語法格式如下:
<header>
<h1>網頁主題</h1>
...
</header>
注:header元素並非head元素,是HTML5新增的元素,並不限制header元素的個數,一個網頁中可以使用多個header元素,也可以為每一個內容塊添加header元素。
2.nav元素
nav元素用於定義導航鏈接,是HTML5新增的元素,該元素可以將具有導航性質的鏈接歸納在一個區域中,使頁面元素的語義更加明確。其中的導航元素可以鏈接到站點的其他頁面,或者當前頁面的其他部分。
在上面這段代碼中,通過在nav元素內部嵌套無序列表ul來搭建導航結構。通常,一個HTML頁面中可以包含多個nav元素,作為頁面整體或不同部分的導航。具體來說,nav元素可以用於以下幾種場合。
* 傳統導航條:目前主流網站上都有不同層級的導航條,其作用是跳轉到網站的其他主頁面。
* 側邊欄導航:目前主流播客網站及電商網站都有側邊欄導航,目的是將當前文章或當前商品頁面跳轉到其他文章或其他商品頁面。
* 頁內導航:它的作用是在本頁面幾個主要的組成部分之間進行跳轉。
* 翻頁操作:翻頁操作切換的是網頁的內容部分,可以通過點擊“上一頁”或“下一頁”切換,也可以通過點擊實際的頁數跳轉到某一頁。
除了以上幾點以外,nav元素也可以用於其他重要的、基本的導航鏈接組中。
注:並不是所有的鏈接都要被放進nav元素,只需要將主要的和基本的鏈接放進nav元素即可。
3.article元素
article元素代表文檔、頁面或者應用程序中與上下文不相關的獨立部分,該元素經常被用於定義一篇日志、一條新聞或者用戶評論等。article元素通常使用多個section元素划分,一個頁面中article元素可以出現多次。
4.aside 元素
aside 元素用來定義當前頁面或者文章的附屬信息部分,它可以包含與當前頁面或主要內容相關的引用、側邊欄、廣告、導航條等其他類似的有別於主要內容的部分。
aside 元素的用法主要分為兩種:
* 被包含在 article 元素內作為主要內容的附屬信息。
* 在 article 元素之外使用,作為頁面或站點全局的附屬信息。
5.section元素
section元素用於對網站或應用程序中頁面上的內容進行分塊,一個section元素通常由內容和標題組成。在使用section元素時,需要注意以下3點:
* 不要將section元素用作設置樣式的頁面容器,那是div的特性。section元素並非一個普通的容器元素,當一個容器需要被直接定義樣式或通過腳本定義行為時,推薦使用div。
* 如果article元素、section元素或nav元素更符合使用條件,那么不要使用section元素。
* 沒有標題的內容區塊不要使用section元素定義。
header元素用來定義文章的標題,section元素用來存放對小張的評論內容,article元素用來划分section元素所定義的內容,將其分為兩部分。
在HTML中,article元素可以看作是一種特殊的section元素,它比section元素更具有獨立性,即section元素強調分段或分塊,而article元素強調獨立性。如果一塊內容相對來說比較獨立、完整時,應該使用article元素,但如果想要將一塊內容分成多段時,應該使用section元素。
6.footer元素
footer元素用於定於一個頁面或者區域的底部,它可以包含所有通常放在頁面底部的內容。在HTML5出現之前,一般使用<div id="footer"></div>標記來定義頁面底部,而通過HTML5的footer元素可以輕松實現。
一個頁面中可以包含多個footer元素。同時,也可以在article元素或者section元素中添加footer元素。
分組元素
7.figure 和 figcaption元素
在HTML5中,figure元素用於定義獨立的內容(圖像、圖表、照片、代碼等),一般指一個單獨的單元。figure元素的內容應該與主內容相關,但如果被刪除,也不會對文檔流產生影響。figcaption元素用於為figure元素組添加標題,一個figure元素最多允許使用一個figcaption元素,該元素應該放在figure元素的第一個或最后一個子元素的位置。
不帶有標題的figure元素(沒有圖片):
帶有標題的figure元素:
多個元素同一個標題的figure元素:
8.hgroup元素
hgroup元素用於將多個標題(主標題和副標題或者子標題)組成一個標題組,通常它與h1~h6元素組合使用。通常,將hgroup元素放在header元素中。
在使用hgroup元素時要注意以下幾點:
* 如果只有一個標題元素不建議使用hgroup元素
* 當出現一個或者一個以上的標題與元素時,推薦使用hgroup元素作為標題元素。
* 當一個標題包含副標題、section或者article元素時,建議將hgroup元素和標題相關元素存放到header元素容器中。
頁面交互元素
9.details 和 summary 元素
details 元素用於描述文檔或文檔某個部分的細節。summary 元素經常與 details元素配合使用,作為 details 元素的第一個子元素,用於為 details 定義標題。標題是可見的,當用戶點擊標題時,會顯示或隱藏details 中的其他內容。
10.progress元素
progress 元素用於定義一個正在完成的進度條,這個進度條可以是不確定的,只是表示進度正在進行,但是不清楚還有多少工作量沒有完成。也可以用0到某個最大數字(如100)之間的數字來表示准確的進度完成情況(如進度百分比)。
progress 元素的常用屬性值有兩個:
* value:已經完成的工作量。
* max:總共有多少工作量。
需要注意的是 value 和 max 屬性的值必須大於0,且 value 的值要小於或等於 max 屬性的值。
11.meter元素
meter 元素用於表示指定范圍內的數值。例如,顯示硬盤容量或者對某個候選者的投票人數占投票總人數的比例等,都可以使用meter 元素。
meter 元素的常用屬性
文本層次語義元素
12.time 元素
time元素用於定義時間或日期,可以代表24小時中的某一時間。time 元素不會在瀏覽器中呈現任何特殊效果,但是該元素能夠以機器可讀的方式對日期和時間進行編碼,這樣,用戶能夠將生日提醒或其他事件添加到日程表中,搜索引擎也能夠生成更智能的搜索結果。
time 元素有兩個屬性:
* datetime:用於定義相應的時間或日期。取值為具體時間(例如:14:00)或具體日期(例如2015——09——01),不定義該屬性時,由元素的內容給定日期 / 時間。
* pubdate:用於定義 time 元素中的日期 / 時間是文檔(或 article 元素)的發布日期。取值一般為“pubdate”。
13.mark元素
mark 元素的主要功能是在文本中高亮顯示某些字符,以引起用戶注意。該元素的用法與 em 和 strong 有相似之處,但是使用 mark 元素在突出顯示樣式時更隨意靈活。
14.cite元素
cite 元素可以創建一個引用標記,用於對文檔參考文獻的引用說明,一旦在文檔中使用了該標記,被標記的文檔內容將以斜體的樣式展示在頁面中,以區別於段落中的其他字符。
全局屬性
15.draggable屬性
draggable屬性用來定義元素是否可以拖到,該屬性有兩個值:true 和 false,默認為flase,當值為 true 時表示元素選中之后可以進行拖到操作,否則不能拖動。
16.hidden元素
在HTML5中,大多數元素都是支持hidden屬性,該屬性有兩個屬性值:true和false。當hidden屬性取值為true時,元素將會被隱藏,反之則會顯示。元素中的內容是通過瀏覽器創建的,頁面裝載后允許使用JavaScript腳本將該屬性取消,取消后該元素變為可見狀態,同時元素中的內容也及時顯示出來。
17.spellcheck屬性
spellcheck屬性主要針對於input元素和textarea文本輸入框,對用戶輸入的文本內容進行拼寫和語法檢查。spellcheck屬性有兩個值:true(默認值)和false,值為true時檢測輸入框中的值,反之不檢查。
有紅色波浪線表示對用戶輸入的文本內容進行拼寫和語法檢查
18.contenteditable屬性
contenteditable屬性規定是否可編輯元素的內容,但是前提是該元素必須可以獲得鼠標焦點並且其內容不是只讀的。