html5標簽知多少


此文為前段時間團隊研究會出品,與小伙伴兮兮圓一起研究的成果,意外地上了公司km的今日推薦,今日挪過來,為新開張的博客先暖暖場吧。

 


 

一、常用標簽

<header>、<footer>、<nav>、<aside>、<hgroup>、<section>、<article>、<main>

二、標簽簡介

<header>

<header>標簽代表頁面或片段的頭部,通常包含頁面(或片段)的標題、介紹信息或一組導航。

 一個頁面里可以有多個<header>標簽。

<header>標簽不能包含在<footer>、<address>和其他<header>標簽中。

示例場景:

注意事項:
切勿過度使用<header>,<header>包含的是頭部的一組信息,若頭部只有標題,直接將標題“裸”出來就行了,沒必要加多一層<header>。
BAD:

GOOD:

<footer>

<footer>標簽代表頁面或片段的尾部(“腳”),通常包含該頁面(或片段)的一些基本信息,如作者、版權、相關文檔的鏈接、聯系信息等。

一個頁面里可以有多個<footer>標簽。

示例場景:

<nav>

<nav>標簽代表頁面的導航區域,通常包含一組導航鏈接。

一個頁面中可以有多個nav元素,作為頁面整體或者不同部分的導航。

並非頁面上所有的鏈接組都需要包含於<nav>中——只有那些由主要的導航鏈接組成的部分才適用。比如<footer>中的鏈接組通常就不需要放在<nav>中,直接用<footer>包含即可。

<nav>對無障礙非常有用,可以直接跳過/跳到鏈接(當然,前提是大部分殘障用戶已經使用支持H5的屏幕閱讀器了)。

示例場景:

<aside>

<aside>標簽代表一個頁面區域,包含和頁面主要內容相關,但又可以單獨存在的那些內容。通常表現為側邊欄、廣告等。
示例場景:

<hgroup>

當一個標題有多個層級時,<hgroup>用於將不同層級的標題(h1到h6)歸組,以便實現子標題、題頭標語等。
<hgroup>“包裝”的標題元素在h5大綱中只顯示一級標題。

請勿濫用<hgroup>,若只有一級標題,直接用hn即可。
<hgroup>是獨立的,無需刻意用<header>包裹。
示例場景:

<section>

<section>標簽用於對文章或頁面上的內容進行分塊,通常由同一主題的內容及其標題組成。
請勿濫用<section>,若一塊內容僅在視覺上是一個整體,語義上並非一個主題,用div即可。
示例場景:

<article>

<article>標簽代表頁面中獨立的、完整的、可以獨自被外部引用的內容。通常為一篇論壇帖子、評論、文章、新聞、協議內容等,也可以是一個交互性的小部件,或者其他任何獨立的內容項目。
一個<article>元素通常有它自己的標題。
示例場景:

<main>

<main>標簽代表頁面的主內容區。
<main>中的內容須是這個頁面獨有的,而不能是會同時出現在其他頁面中的(像側邊、導航等公共內容)。
一個頁面中只能有一個<main>。
<main>不能在<article>、<aside>、<header>、<footer>、<nav>的里面,即<main>的級別不能低於這些標簽。
示例場景:

三、h5大綱

查看方式

chrome下“工具——>擴展程序——>HTML5 Outliner——>啟用”,啟用后chrome右上角會出現下圖所示的圖標,點擊即可。

本地文件不能用上述工具查看,可將代碼粘至在線工具HTML 5 Outliner中進行查看。

注意事項

1、建議為每一個<nav>、<aside>、<article>、<section>都添加標題,一方面為了語義化,另一方面,若沒有標題,h5大綱中會顯示“Untitled XXX”,如圖:

視覺上不需要顯示的標題可以通過樣式隱藏。

2、h5中<nav>、<aside>、<article>、<section>元素都是獨立的,會創建一個新的“節”,也就是文檔大綱中一個新的節點。在h5中,每個節都可以有自己的<h1>元素。
上述節點可以有自己的<h1>元素,而且也應該從<h1>開始,不然默認顯示會有問題,如圖:

此為chrome下的測試結果,初步猜測可能是頁面解析時在獨立節點<section>內找不到其(兩個<h2>標題“常用標簽”和“標簽簡介”)相應的一級標題<h1>,計算樣式時就按原h4大綱的方式處理了。

3、用開發人員工具可以看出,h5算法會自動為<body>和<nav>、<aside>、<article>、<section>元素添加id,而元素<header>、<footer>和<main>沒有,這說明這三個元素沒有創建獨立的“節”。如圖:

4、默認展現上,“節”的層級越多,其內部的hn字號越小,如圖:

四、思考題

1、跟據h5的新規定,<header>可以出現多次,那么究竟什么情況下才適合用多<header>呢?<header>過多會不會引發其他問題,比如被seo屏蔽?面對多個header,讀屏軟件又會怎么處理呢?
2、對於內容關聯度比較高的模塊,我們可以用<section>划分,比如本文中的“常用標簽”、“標簽簡介”、“h5大綱”、“思考題”幾個模塊就是用<section>包裹的,同時,我們也可以用原來的方式——文檔標題用<h1>,這幾個模塊的標題用<h2>來實現。這兩種方式生成的h5大綱是一樣的,從語義上來說也都是合理的,那么,究竟什么時候用<section>划分模塊,什么時候用hn遞減方式划分模塊合適呢?兩者直接可否找到一個可量化的分界點?

3、本文討論了這么多,那么,我們為什么要錙銖必較地去探討每個標簽怎么用,用錯了會怎樣?我們又為什么要遵循h5大綱,大綱不良又會怎樣?如大家所知,良好的結構和大綱會使頁面語義化,這對於無障礙(主要是讀屏軟件)和seo都是很有幫助的,除此之外,還有么其他更多更深的意義呢?標簽雖易,用好不易,且用且深思……

2014.4.2


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



猜您在找 HTML Meta標簽知多少 html5標簽大全 HTML5
標簽 html5常用基本標簽 HTML5 標簽大全 html5常見標簽 HTML5 datalist 標簽 HTML5新增標簽 HTML5 結構標簽 HTML5