HTML基礎複習——語義化

HTML語義化

概念

官方解釋:
語義化是指用合理的HTML標記以及其特有的屬性去格式化文檔內容。通俗地講,語義化就是對數據和信息進行處理,使得機器可以理解。

我的理解:
在我的理解中語義化就是讓我們寫的每一行代碼都有其意義,不僅僅是程序實現和功能上而言,還必須能被人和機器很好的理解。簡單的說就是你寫的代碼應該是兩全其美的,既要讓人讀懂也要讓機器讀懂。在HTML中就是告訴大家,每一個標籤都是有它獨特的意義的和應用場景的,而不是隨便想用就用,想用什麼替換就用什麼替換。

我認爲最好的理解就是將office中的Word與其對比。Word中從頭部頁眉、標題、正文再到頁腳都有單獨的樣式和設置,所以HTML也大同小異,就是爲了將網頁內容通過這些設置來呈現出來。包括我現在寫的文章是用Markdown來完成的,也是語義化的體現。

我將HTML的語義化分爲兩部分,一個是結構語義化,一個是標籤語義化,雖然這樣分會有點問題,但更有利於理解。

結構語義化

先從網頁的整個結構來說,最早的網頁就是來展現最基礎的新聞、文章之類的,只是現在的網頁設計更厲害了,在樣式上看着更加炫酷和多樣化,但本質上都是從最基本的結構做起的。可以先看看世界上最早的網頁是什麼樣子
![圖片上傳中...]

網頁的結構大致上可以從下面這個圖來理解:
clipboard.png

代碼展現:

<body>
    <!-- 頭部 -->
    <header></header>
    <!-- 頭部 -->

    <!-- 導航 -->
    <nav></nav>
    <!-- 導航 -->

    <!-- 主體內容 -->
    <main>
    
        <!-- 正文內容 -->
        <article>
            <!-- 章節 -->
            <section>
                <p></p>
            </section>
            <!-- 章節 -->
        </article>
        <!-- 正文內容 -->

        <!-- 正文之外內容 -->
        <aside></aside>
        <!-- 正文之外內容 -->
        
    </main>
    <!-- 主體內容 -->

    <!-- 底部 -->
    <footer></footer>
    <!-- 底部 -->
</body>

標籤語義化

結構語義化不也就是將標籤語義化嗎?是的,但是單獨拉出來說是因爲除了整個網頁結構,其他更多的細節我們需要注意語義化。舉個例子,下面是騰訊某新聞版塊的網頁:

clipboard.png

現在我們去掉其所有樣式後是這樣的:
clipboard.png

再看看它的源代碼
clipboard.png

不難發現,在我們將其網頁的所有樣式都去掉之後,還是能清晰地讀完整篇文章,並且是層次分明的。這就是爲什麼要將標籤語義化。可以看到文章的標題用到了<h1>標籤,全文就這一個大標題。然後整篇文章用<p>標籤將文段分開,沒有用<div>,因爲<p>就代表一個段落,而<div>什麼都不代表。強調的部分用了<strong>標籤。大家知道CSS中的font-wight也可以加粗文字,HTML的<b>標籤也可以加粗文字,但是騰訊都沒有使用。因爲CSS在沒有樣式的時候就不管用了,<b>標籤沒有強調的意思,而<strong>的語義更明顯。

這樣的例子還有很多很多,比如W3C的官方網站,在去掉所有CSS樣式之後,還是能清楚地找到網頁的各個部分,瀏覽所需的內容,這就是一個優秀的網站應該做到的。

常用的語義化標籤(大部分擁有文本格式化的作用):

  • <em> 把文本定義爲強調的內容。
  • <strong> 把文本定義爲語氣更強的強調的內容。
  • <dfn> 定義一個定義項目。
  • <samp> 定義樣本文本。
  • <kbd> 定義鍵盤文本。
  • <var> 定義變量。
  • <cite> 定義引用。
  • <h1> to <h6> 定義 HTML 標題。
  • <p> 定義段落。
  • <address> 定義文檔作者或擁有者的聯繫信息。
  • <blockquote> 定義長的引用。
  • <mark> 定義有記號的文本。
  • <q> 定義短的引用。
  • <time> 定義日期/時間。
  • <figure> 定義媒介內容的分組,以及它們的標題。

更多請參考W3C:http://www.w3school.com.cn/ta...

好處

  • 讓我們的網頁結構更加清晰,讓電腦和瀏覽器輕易地識別哪一部分是導航,哪一部分是正文,即使在沒有CSS修飾的情況下,我們也能清楚地看到整個網頁的結構。
  • 對於SEO更加友好,利於搜索引擎對網站的收錄和評分。
  • 利於人更好地理解代碼意思,因爲是W3C標準,只要你按照語義化使用標籤,全球任何國家的程序員都能看懂。

總結

踐行HTML語義化最好的方法就是秉承以下兩點:

  1. 如果沒有CSS樣式,網站內容是否能完整且清晰地展現出來,並準確表達各部分的意思。
  2. 如果看代碼的人不是我自己,別人是否能看懂我寫的標籤都是什麼意思。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章