1. 程式人生 > >HTML5新特性,語義化

HTML5新特性,語義化

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關聯起來。

 4、HTML5新增了哪些語義標籤,詳述之。

    1、<section></section> 

        定義文件中的主體部分的節、段。

    2、<article></article>

        一個特殊的section標籤,比section有更明確的語義。定義來自外部的一個獨立的、完整的內容塊,例如什麼論壇的文章,部落格的文字。。。

    3、<aside></aside>

        用來裝載頁面中非正文的內容,獨立於其他模組。例如廣告、成組的連結、側邊欄。。。

    4、<header></header>

      定義文件、頁面的頁首。通常是一些引導和導航資訊,不侷限於整個頁面頭部,也可以用在內容裡。

    5、<footer></footer>

      定義了文件、頁面的頁尾,和header類似。

    6、<nav></nav>

     定義了一個連結組組成的導航部分,其中的連結可以連結到其他網頁或者當前頁面的其他部分。

    7、<hgroup></hgroup>

     用於對網頁或區段(section)的標題元素(h1~h6)進行組合。

    8、<figure></figure>

     用於對元素進行組合。

    9、<figcaption></figcaption>

     為figure元素加標題。一般放在figure第一個子元素或者最後一個。

    10、<details></details>

     定義元素的細節,使用者可以點選檢視或者隱藏。

    11、<summary></summary>

     和details連用,用來包含details的標題。

    12、<canvas></canvas>

     用來進行canvas繪圖。

    13、<video></video>

     定義視訊。

    14、<audio></audio>

     定義音訊。

    15、<embed></embed>

     定義嵌入網頁的內容。比如外掛。

    16、<source></source>

     該標籤為媒介元素(比如video、audio)定義媒介元素。

    17、<datalist id='dl'></datalist>

     定義可選資料的列表,與input配合使用(<input list='dl'>)可製作輸入值的下拉列表。

    18、<mark></mark>

     在視覺上向用戶展現出那些想要突出的文字。比如搜尋結果中向用戶高亮顯示搜尋關鍵詞。

    19、<meter [min/max/low/high/optimum/value]></meter>

     度量衡,用紅黃綠表示出一個數值所在範圍。

    20、<output></output>

     定義不同型別的輸出,樣式與span無異。

    21、<progress></progress>

     進度條,執行中的進度。

    22、<time></time>

     定義日期或者時間。

    23、<keygen></keygen>

     定義加密內容。

    24、<command></command>

     定義命令列為。