相信大家都知道html和css,知道html結構和css表現分離,知道html語意化,這些都是這幾年的熱門關鍵字。語義化的html在國內也是一兩年前才開始被追捧的,看看現在群組裡談論的html結構,關於html結構的面試題,語義化的html佔據了很大一部分。那為什麼要使用語意化的HTML?語意化的HTML到底有什麼好處呢?
HTML是提供網頁文件內容的上下文結構和意義;html本身是沒有表現的,我們看到例如
語意化的HTML結構首先要強調HTML結構
HTML結構是頁面的骨架,一個頁面就好像一幢房子,HTML結構就是鋼精鋼筋混泥土的牆,一幢房子如果沒有鋼精鋼筋混泥土的牆那就是一堆費磚頭,不能住人,不能辦公。 css是裝飾材料,是原木地板,是大理石,是油漆,是用來裝飾房子的,CSS的強大就不用多說了,css如果沒有html結構那就是一堆木板,一同油漆,沒有了實際使用價值。 CSS完全依賴引用它的(X)HTML文件。如果你想讓CSS的能力充分發揮到極致,提供一個用既乾淨又有結構的內容的html是非常必要的,「HTML是在互聯網上發布超文本的通用語……HTML使用標籤來對文本結構化」( http://www.w3.org/MarkUp/ )。
語意化的HTML結構怎麼寫?
HTML是一種對文字內容進行結構和意義(或說「語意」)進行補充的方法。它會告訴我們說:「這行是一個標題,這幾行組成了一個段落。這些文字是項目列表,這些文字是鏈接到互聯網上另一個文件的超鏈接。」值得注意的是,不應該讓HTML來告訴我們:「這些文字是藍色的,這些文字又是紅色的。這部分內容是最最靠右的一欄,這行內容是斜體字。」這些和表現相關的資訊是CSS的工作。在做前端開發的時候要記住:HTML告訴我們一塊內容是什麼(或其意義),而不是它長的樣子。當我們提到「語意標記」的時候,我們所說的HTML應該是完全脫離表現資訊的,其中的標籤應該都是語意化地定義了文件的結構。
語意化的HTML結構其實很簡單,先掌握html中各個標籤的語意,
語意化的HTML結構到底有什麼好處?
我們知道HTML5新增的標籤,例如
1.去掉或樣式遺失的時候能讓頁面呈現清楚的結構:
html本身是沒有表現的,我們看到例如
2.螢幕閱讀器(如果訪客有視障)會完全根據你的標記來「讀」你的網頁.
例如,如果你使用的含語義的標記,螢幕閱讀器就會「逐一拼出」你的單字,而不是試著去對它完整發音.
3.PDA、手機等設備可能無法像普通電腦的瀏覽器一樣來渲染網頁(通常是因為這些設備對CSS的支援較弱).
使用語義標記可以確保這些設備以一種有意義的方式來渲染網頁.理想情況下,觀看設備的任務是符合設備本身的條件來渲染網頁.
語意標記為設備提供了所需的相關資訊,就省去了你自己去考慮所有可能的顯示情況(包括現有的或將來新的設備).例如,一部手機可以選擇使一段標記了標題的文字以粗體顯示.而掌上電腦可能會以比較大的字體來顯示.無論哪種方式一旦你對文本標記為標題,您就可以確信讀取設備將根據其自身的條件來合適地顯示頁面.
4.搜尋引擎的爬蟲也依賴標記來確定上下文和各個關鍵字的權重.
過去你可能還沒有考慮搜尋引擎的爬蟲也是網站的「訪客」,但現在它們他們實際上是極其寶貴的用戶.沒有他們的話,搜尋引擎將無法索引你的網站,然後一般用戶將很難過來訪問.
5.你的頁面是否對爬蟲容易理解非常重要,因為爬蟲很大程度上會忽略用於表現的標記,而只注重語義標記.
因此,如果頁面文件的標題被標記,而不是,那麼這個頁面在搜索結果的位置可能會比較靠後.除了提升易用性外,語義標記有利於正確使用CSS和JavaScript,因為其本身提供了許多「鉤鉤」來套用頁面的樣式與行為.
SEO主要還是靠你網站的內容和外部連結的。
6.便於團隊開發與維護
W3C為我們設定了一個很好的標準,在團隊中大家都遵循這個標準,可以減少很多差異化的東西,方便開發和維護,提高開發效率,甚至實現模組化開發。
如有不同觀點,補充,歡迎留言討論。
感謝鬼哥,奶茶,小志,偷飯,Caspar還有css森林群的討論