對語義化的理解


1、什么是HTML語義化?

<基本上都是圍繞着幾個主要的標簽,像標題(H1~H6)、列表(li)、強調(strong em)等等>

  根據內容的結構化(內容語義化),選擇合適的標簽(代碼語義化)便於開發者閱讀和寫出更優雅的代碼的同時讓瀏覽器的爬蟲和機器很好地解析。

2、為什么要語義化?

  • 為了在沒有CSS的情況下,頁面也能呈現出很好地內容結構、代碼結構:為了裸奔時好看;
  • 用戶體驗:例如title、alt用於解釋名詞或解釋圖片信息、label標簽的活用;
  • 有利於SEO搜索引擎優化:和搜索引擎建立良好溝通,有助於爬蟲抓取更多的有效信息:爬蟲依賴於標簽來確定上下文和各個關鍵字的權重;
  • 方便其他設備解析(如屏幕閱讀器、盲人閱讀器、移動設備)以意義的方式來渲染網頁;
  • 便於團隊開發和維護,語義化更具可讀性,是下一步吧網頁的重要動向,遵循W3C標准的團隊都遵循這個標准,可以減少差異化。

3、寫HTML代碼時應注意什么?

  • 盡可能少的使用無語義的標簽div和span;
  • 在語義不明顯時,既可以使用div或者p時,盡量用p, 因為p在默認情況下有上下間距,對兼容特殊終端有利;
  • 不要使用純樣式標簽,如:b、font、u等,改用css設置。
  • 需要強調的文本,可以包含在strong或者em標簽中(瀏覽器預設樣式,能用CSS指定就不用他們),strong默認樣式是加粗(不要用b),em是斜體(不用i);
  • 使用表格時,標題要用caption,表頭用thead,主體部分用tbody包圍,尾部用tfoot包圍。表頭和一般單元格要區分開,表頭用th,單元格用td;
  • 表單域要用fieldset標簽包起來,並用legend標簽說明表單的用途;
  • 每個input標簽對應的說明文本都需要使用label標簽,並且通過為input設置id屬性,在lable標簽中設置for=someld來讓說明文本和相對應的input關聯起來。

 4HTML5新增了哪些語義標簽

在HTML 5出來之前,我們用div來表示頁面章節,但是這些div都沒有實際意義。(即使我們用css樣式的id和class形容這塊內容的意義)。這些標簽只是我們提供給瀏覽器的指令,只是定義一個網頁的某些部分。但現在,那些之前沒“意義”的標簽因為因為html5的出現消失了,這就是我們平時說的“語義”。

看下圖沒有用div標簽來布局

 

 

 HTML5其他結構元素標簽

HTML5節元素標簽包括body article nav aside section header footer hgroup ,還有h1-h6 address

  • address代表區塊容器,必須是作為聯系信息出現,郵編地址、郵件地址等等,一般出現在footer。
  • h1-h6因為hgroup,section和article的出現,h1-h6定義也發生了變化,允許一張頁面出現多個h1。

 

html5的布局

但是也不要因為html5新標簽的出現,而隨意用之,錯誤的使用肯定會事與願違。所以有些地方還是要用div的,就是因為div沒有任何意義的元素,他只是一個標簽,僅僅是用來構建外觀和結構。因此是最適合做容器的標簽。

結論:不能因為有了HTML 5標簽就棄用了div,每個事物都有它的獨有作用的。

節點元素標簽因使用的地方不同,我將他們分為:節元素標簽、文本元素標簽、分組元素標簽分開來講解HTML5中新增加的語義化標簽和使用總結。

header元素

header 元素代表“網頁”或“section”的頁眉。
通常包含h1-h6元素或hgroup,作為整個頁面或者一個內容塊的標題。也可以包裹一節的目錄部分,一個搜索框,一個nav,或者任何相關logo。

footer元素

footer元素代表“網頁”或“section”的頁腳,通常含有該節的一些基本信息,譬如:作者,相關文檔鏈接,版權資料。如果footer元素包含了整個節,那么它們就代表附錄,索引,提拔,許可協議,標簽,類別等一些其他類似信息。

hgroup元素

hgroup元素代表“網頁”或“section”的標題,當元素有多個層級時,該元素可以將h1h6元素放在其內,譬如文章的主標題和副標題的組合

hgroup使用注意:

  • 如果只需要一個h1-h6標簽就不用hgroup
  • 如果有連續多個h1-h6標簽就用hgroup
  • 如果有連續多個標題和其他文章數據,h1-h6標簽就用hgroup包住,和其他文章元數據一起放入header標簽

 

nav元素

nav元素代表頁面的導航鏈接區域。用於定義頁面的主要導航部分

<nav>
    <ul>
        <li>HTML 5</li>
        <li>CSS3</li>
        <li>JavaScript</li>
    </ul>
</nav>

nav實例

但是我在有些時候卻情不自禁的想用它,譬如:側邊欄上目錄,面包屑導航,搜索樣式,或者下一篇上一篇文章,但是事實上規范上說nav只能用在頁面主要導航部分上。頁腳區域中的鏈接列表,雖然指向不同網站的不同區域,譬如服務條款,版權頁等,這些footer元素就能夠用了。

aside元素

aside元素被包含在article元素中作為主要內容的附屬信息部分,其中的內容可以是與當前文章有關的相關資料、標簽、名次解釋等。(特殊的section)

在article元素之外使用作為頁面或站點全局的附屬信息部分。最典型的是側邊欄,其中的內容可以是日志串連,其他組的導航,甚至廣告,這些內容相關的頁面。

<article>
    <p>內容</p>
    <aside>
        <h1>作者簡介</h1>
        <p>小北,前端一枚</p>
    </aside>
</article>

aside實例

aside使用總結:

  • aside在article內表示主要內容的附屬信息,
  • 在article之外則可做側邊欄,沒有article與之對應,最好不用。
  • 如果是廣告,其他日志鏈接或者其他分類導航也可以用

section元素

section元素代表文檔中的“節”或“段”,“段”可以是指一篇文章里按照主題的分段;“節”可以是指一個頁面里的分組。

section通常還帶標題,雖然html5中section會自動給標題h1-h6降級,但是最好手動給他們降級。如下:

<section>
    <h1>section是啥?</h1>
    <article>
        <h2>關於section</h1>
        <p>section的介紹</p>
        <section>
            <h3>關於其他</h3>
            <p>關於其他section的介紹</p>
        </section>
    </article>
</section>

section示例代碼

section使用注意:

一張頁面可以用section划分為簡介、文章條目和聯系信息。不過在文章內頁,最好用article。section不是一般意義上的容器元素,如果想作為樣式展示和腳本的便利,可以用div。

  • 表示文檔中的節或者段;
  • article、nav、aside可以理解為特殊的section,所以如果可以用article、nav、aside就不要用section,沒實際意義的就用div

article元素

article元素最容易跟sectiondiv容易混淆,其實article代表一個在文檔,頁面或者網站中自成一體的內容,其目的是為了讓開發者獨立開發或重用。譬如論壇的帖子,博客上的文章,一篇用戶的評論,一個互動的widget小工具。(特殊的section)

除了它的內容,article會有一個標題(通常會在header里),會有一個footer頁腳。我們舉幾個例子介紹一下article,好更好區分article、section、div

 

<article>
    <h1>一篇文章</h1>
    <p>文章內容..</p>
    <footer>
        <p><small>版權:html5jscss網所屬,作者:小北</small></p>
    </footer>
</article>

 


免責聲明!

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



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM