相信大家都知道html和css,知道html結構和css表現分離,知道html語義化,這些都是這幾年的熱門關鍵字。語義化的html在國內也是一兩年前才開始被追捧的,看看現在群裡談論的html結構,關於html結構的面試題,語義化的html占據了很大一部分。那麼為什麼要使用語義化的HTML?語義化的HTML到底有什麼好處呢?
HTML是提供網頁文檔內容的上下文結構和含義;html本身是沒有表現的,我們看到例如<h1>是粗體,字體大小2em,加粗;<strong>是加粗的,不要認為這是html的表現,這些其實html默認的css樣式在起作用,所以首先我們要知道html和頁面的表現是沒有關系的,這些是css的事情。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中各個標簽的語義,<div>是一個容器;<strong>是表示強調;<ul><li>是一個無序列表等等…在看到內容的時候想想用什麼標簽能更好的描述它,是什麼就用什麼標簽。
語義化的HTML結構到底有什麼好處?
我們知道HTML5新增的標簽,比如<header>和<footer>,html正在朝著更加健壯的語義化的HTML結構發展,xhtml2在這點上沒html5先進,這也是xhtml2死亡的一個原因,這一點也說明了語義化的HTML結構是html的發展趨勢。
1.去掉或樣式丟失的時候能讓頁面呈現清晰的結構:
html本身是沒有表現的,我們看到例如<h1>是粗體,字體大小2em,加粗;<strong>是加粗的,不要認為這是html的表現,這些其實html默認的css樣式在起作用,所以去掉或樣式丟失的時候能讓頁面呈現清晰的結構不是語義化的HTML結構的優點,但是浏覽器都有有默認樣式,默認樣式的目的也是為了更好的表達html的語義,可以說浏覽器的默認樣式和語義化的HTML結構是不可分割的。
2.屏幕閱讀器(如果訪客有視障)會完全根據你的標記來“讀”你的網頁.
例如,如果你使用的含語義的標記,屏幕閱讀器就會“逐個拼出”你的單詞,而不是試著去對它完整發音.
3.PDA、手機等設備可能無法像普通電腦的浏覽器一樣來渲染網頁(通常是因為這些設備對CSS的支持較弱).
使用語義標記可以確保這些設備以一種有意義的方式來渲染網頁.理想情況下,觀看設備的任務是符合設備本身的條件來渲染網頁.
語義標記為設備提供了所需的相關信息,就省去了你自己去考慮所有可能的顯示情況(包括現有的或者將來新的設備).例如,一部手機可以選擇使一段標記了標題的文字以粗體顯示.而掌上電腦可能會以比較大的字體來顯示.無論哪種方式一旦你對文本標記為標題,您就可以確信讀取設備將根據其自身的條件來合適地顯示頁面.
4.搜索引擎的爬蟲也依賴於標記來確定上下文和各個關鍵字的權重.
過去你可能還沒有考慮搜索引擎的爬蟲也是網站的“訪客”,但現在它們他們實際上是極其寶貴的用戶.沒有他們的話,搜索引擎將無法索引你的網站,然後一般用戶將很難過來訪問.
5.你的頁面是否對爬蟲容易理解非常重要,因為爬蟲很大程度上會忽略用於表現的標記,而只注重語義標記.
因此,如果頁面文件的標題被標記,而不是,那麼這個頁面在搜索結果的位置可能會比較靠後.除了提升易用性外,語義標記有利於正確使用CSS和JavaScript,因為其本身提供了許多“鉤鉤”來應用頁面的樣式與行為.
SEO主要還是靠你網站的內容和外部鏈接的。
6.便於團隊開發和維護
W3C給我們定了一個很好的標准,在團隊中大家都遵循這個標准,可以減少很多差異化的東西,方便開發和維護,提高開發效率,甚至 實現模塊化開發。
如有不同觀點,補充,歡迎留言討論。
感謝鬼哥,奶茶,小志,偷米飯,Caspar還有css森林群的討論