前端進階之說一說你對HTML5語義化的理解

  • 做者:陳大魚頭
  • github: KRISACHAN
  • 連接:github.com/YvetteLau/S…
  • 背景:最近高級前端工程師 劉小夕github 上開了個每一個工做日佈一個前端相關題的 repo,懷着學習的心態我也參與其中,如下爲個人回答,若是有不對的地方,很是歡迎各位指出。

標籤分類

  • 在一個 html 文檔中,標籤大體能夠分爲如下兩個大類:
    1. <!DOCTYPE>:聲明文檔類型;
    1. <html></html>:限定文檔區域;

<html></html> 內又有如下幾類:html

1. head

<head>標籤用於定義文檔的頭部,它是全部頭部元素的容器。<head>描述了文檔的各類屬性和信息,包括文檔的標題、在 Web 中的位置以及和其餘文檔的關係等。 head內可存放標籤有:前端

  1. <base>:爲頁面上的全部連接規定默認地址或默認目標。
  2. <link>:主要用於style文件引入
  3. <style>:樣式表區域
  4. <title>:可定義文檔的標題。<title> 標籤是 <head> 標籤中惟一要求包含的東西。
  5. <meta>:提供了有關當前HTML元素的元信息 (meta-information)

2. body

<body>標籤內存放文檔的內容。 <body>內標籤分類有如下11類:git

  1. 內容分區
  2. 文本內容
  3. 內聯文本語義
  4. 圖片和多媒體
  5. 內嵌內容
  6. 腳本
  7. 編輯標識
  8. 表格內容
  9. 表單
  10. 交互元素
  11. Web組件

HTML 標籤語義化

語義化到底重不重要?github

咱們知道,在HTML中,每一個標題是經過標題標籤來定義的,標題標籤一共有6個,分別是:h1~6。例子以下:瀏覽器

<h1>我是一級標題</h1>
<h2>我是二級標題</h2>
<h3>我是三級標題</h3>
<h4>我是四級標題</h4>
<h5>我是五級標題</h5>
<h6>我是六級標題</h6>
複製代碼

若是是連續的標題,則能夠用 <hgroup> 來鏈接:微信

<hgroup>
  <h1>我是一級標題</h1>
    <h2>我是二級標題</h2>
    <h3>我是三級標題</h3>
    <h4>我是四級標題</h4>
    <h5>我是五級標題</h5>
    <h6>我是六級標題</h6>
</hgroup>
複製代碼

若是是段落內容,則用 <p>前端工程師

<p>我是段落內容</p>
複製代碼

若是咱們要列一個列表則能夠用 <ol></ol><li></li> 。若是隻是要標記項目,咱們能夠用 <li></li> ,例子以下:組件化

<ul>
  <li>蘋果</li>
  <li>香蕉</li>
  <li>奧特曼</li>
  <li>橙子</li>
</ul>
複製代碼

如果標記順序,則用 <ol></ol> ,例子以下:學習

<ol>
  <li>向前走300米</li>
  <li>右轉</li>
  <li>向前走300米</li>
  <li>右轉</li>
  <li>向前走300米</li>
</ol>
複製代碼

固然咱們也能夠按需嵌套。優化

<ol>
<li>先用蛋白一個、鹽半茶匙及澱粉兩大匙攪拌均勻,調成「醃料」,雞胸肉切成約一釐米見方的碎丁並用「醃料」攪拌均勻,醃漬半小時。</li>
  <li>用醬油一大匙、澱粉水一大匙、糖半茶匙、鹽四分之一茶匙、白醋一茶匙、蒜末半茶匙調拌均勻,調成「綜合調味料」。</li>
  <li>雞丁醃好之後,色拉油下鍋燒熱,先將雞丁倒入鍋內,用大火快炸半分鐘,炸到變色以後,撈出來瀝乾油汁備用。</li>
  <li>在鍋裏留下約兩大匙油,燒熱後將切好的幹辣椒下鍋,用小火炒香後,再放入花椒粒和蔥段一塊兒爆香。隨後雞丁從新下鍋,用大火快炒片刻後,再倒入「綜合調味料」繼續快炒。</li>
  <ul>
    <li>若是你採用正宗川菜作法,最後只需加入花生米,炒拌幾下就能夠起鍋了。</li>
    <li>若是你在北方,可加入黃瓜丁、胡蘿蔔丁和花生米,翻炒後起鍋。</li>
  </ul>
</ol>
複製代碼

在咱們日常說話的時候,爲了突出重點,咱們每每會強調某些詞,就如以下的例子:

<p><em>很是</em>喜歡加班</p>
複製代碼

若是是重音強調,則:

<p>魚頭,明天<strong>別遲到</strong></p>
複製代碼

若是你在項目的一開始就使用HTML語義化,不只不會花更多的時間,並且又有如下的可訪問性優勢:

  1. 更便於開發 — 如上所述,你可使HTML更易於理解,而且能夠絕不費力的得到一些功能。

  2. 更適配移動端 — 語義化的HTML文件比非語義化的HTML文件更加輕便,而且更易於響應式開發。

  3. 更便於SEO優化 — 比起使用非語義化的

    標籤,搜索引擎更加劇視在「標題、連接等」裏面的關鍵字,使用語義化可以使網頁更容易被用戶搜索到。(雖然在9012年的今天,SEO並沒太大軟用)

無障礙設計

在Web開發無障礙性意味着使盡量多的人可以使用Web站點,即便這些人的能力是有限的。這裏咱們提供關於開發易訪問的內容的信息。

「無障礙性是最經常使用於描述設施或設施,幫助殘疾人,如「輪椅」。這能夠擴展到盲文標識、輪椅坡道,音頻信號在人行橫道,輪廓人行道,網站設計,等等。"

WAI-ARIA

WAI-ARIA 是一項技術,它能夠經過瀏覽器和一些輔助技術來幫助咱們進一步地識別以及實現語義化,這樣一來能幫助咱們解決問題,也讓用戶能夠了解發生了什麼。

WAI-ARIA 是W3C編寫的規範,定義了一組可用於其餘元素的HTML 特性,用於提供額外的語義化以及改善缺少的可訪問性。如下是規範中三個主要的特性:

  1. 角色(role):這定義了元素是幹什麼的;

  2. 屬性: 經過定義一些屬性給元素,讓他們具有更多的語義;

  3. 狀態:用於表達元素當前的條件的特殊屬性。

後記

HTML語義化很是地重要,雖然在組件化開發的今天,利益沒那麼明顯,可是對於後期維護,用戶訪問以及用戶友好度來講都是很是重要的,在某些國家,語義化跟無障礙標準化甚至是衡量一個線上產品可否上線的標準。



若是你、喜歡探討技術,或者對本文有任何的意見或建議,你能夠掃描下方二維碼,關注微信公衆號「 魚頭的Web海洋」,隨時與魚頭互動。歡迎!衷心但願能夠碰見你。

相關文章
相關標籤/搜索