- 相關(guān)推薦
關(guān)于語(yǔ)義化的HTML結構怎么理解
相信大家都知道html和css,知道html結構和css表現分離,知道html語(yǔ)義化,這些都是這幾年的熱門(mén)關(guān)鍵字。語(yǔ)義化的html在國內也是一兩年前才開(kāi)始被追捧的,看看現在群里談?wù)摰膆tml結構,關(guān)于html結構的面試題,語(yǔ)義化的html占據了很大一部分。那么為什么要使用語(yǔ)義化的HTML?語(yǔ)義化的HTML到底有什么好處呢?
HTML是提供網(wǎng)頁(yè)文檔內容的上下文結構和含義;html本身是沒(méi)有表現的,我們看到例如
是粗體,字體大小2em,加粗;是加粗的,不要認為這是html的表現,這些其實(shí)html默認的css樣式在起作用,所以首先我們要知道html和頁(yè)面的表現是沒(méi)有關(guān)系的,這些是css的事情。HTML在頁(yè)面中的作用就是結構和含義,通俗點(diǎn)說(shuō)就是劃分內容,這里放什么,我們放的是什么。
語(yǔ)義化的HTML結構首先要強調HTML結構
HTML結構是頁(yè)面的骨架,一個(gè)頁(yè)面就好像一幢房子,HTML結構就是鋼精鋼筋混泥土的墻,一幢房子如果沒(méi)有鋼精鋼筋混泥土的墻那就是一堆費磚頭,不能住人,不能辦公。css是裝飾材料,是原木地板,是大理石,是油漆,是用來(lái)裝飾房子的,CSS的強大就不用多說(shuō)了,css如果沒(méi)有html結構那就是一堆木板,一同油漆,沒(méi)有了實(shí)際使用價(jià)值。CSS完全依靠引用它的(X)HTML文檔。如果你想使CSS的能力充分發(fā)揮到極致,提供一個(gè)用既干凈又有結構的內容的html是非常必要的,“HTML是在互聯(lián)網(wǎng)上發(fā)布超文本的通用語(yǔ)……HTML使用標簽來(lái)對文本結構化”(http://www.w3.org/MarkUp/)。
語(yǔ)義化的HTML結構怎么寫(xiě)?
HTML是一種對文本內容進(jìn)行結構和意義(或者說(shuō)“語(yǔ)義”)進(jìn)行補充的方法。它會(huì )告訴我們說(shuō):“這行是一個(gè)標題,這幾行組成了一個(gè)段落。這些文字是項目列表,這些文字是鏈接到互聯(lián)網(wǎng)上另一個(gè)文件的超鏈接!敝档米⒁獾氖,不應該讓HTML來(lái)告訴我們:“這些文字是藍色的,這些文字又是紅色的。這部分內容是最最靠右的一欄,這行內容是斜體字!边@些和表現相關(guān)的信息是CSS的工作。在做前端開(kāi)發(fā)的時(shí)候要記。篐TML告訴我們一塊內容是什么(或其意義),而不是它長(cháng)的什么樣子。當我們提到“語(yǔ)義標記”的時(shí)候,我們所說(shuō)的HTML應該是完全脫離表現信息的,其中的標簽應該都是語(yǔ)義化地定義了文檔的結構。
語(yǔ)義化的HTML結構其實(shí)很簡(jiǎn)單,首先掌握html中各個(gè)標簽的語(yǔ)義,
是一個(gè)容器;是表示強調;
是一個(gè)無(wú)序列表等等…在看到內容的時(shí)候想想用什么標簽能更好的描述它,是什么就用什么標簽。
語(yǔ)義化的HTML結構到底有什么好處?
我們知道HTML5新增的標簽,比如
和
,html正在朝著(zhù)更加健壯的語(yǔ)義化的HTML結構發(fā)展,xhtml2在這點(diǎn)上沒(méi)html5先進(jìn),這也是xhtml2死亡的一個(gè)原因,這一點(diǎn)也說(shuō)明了語(yǔ)義化的HTML結構是html的發(fā)展趨勢。
1.去掉或樣式丟失的時(shí)候能讓頁(yè)面呈現清晰的結構:
html本身是沒(méi)有表現的,我們看到例如
是粗體,字體大小2em,加粗;是加粗的,不要認為這是html的表現,這些其實(shí)html默認的css樣式在起作用,所以去掉或樣式丟失的時(shí)候能讓頁(yè)面呈現清晰的結構不是語(yǔ)義化的HTML結構的優(yōu)點(diǎn),但是瀏覽器都有有默認樣式,默認樣式的目的也是為了更好的表達html的語(yǔ)義,可以說(shuō)瀏覽器的默認樣式和語(yǔ)義化的HTML結構是不可分割的。
2.屏幕閱讀器(如果訪(fǎng)客有視障)會(huì )完全根據你的標記來(lái)“讀”你的網(wǎng)頁(yè).
例如,如果你使用的含語(yǔ)義的標記,屏幕閱讀器就會(huì )“逐個(gè)拼出”你的單詞,而不是試著(zhù)去對它完整發(fā)音.
3.PDA、手機等設備可能無(wú)法像普通電腦的瀏覽器一樣來(lái)渲染網(wǎng)頁(yè)(通常是因為這些設備對CSS的支持較弱).
使用語(yǔ)義標記可以確保這些設備以一種有意義的方式來(lái)渲染網(wǎng)頁(yè).理想情況下,觀(guān)看設備的任務(wù)是符合設備本身的條件來(lái)渲染網(wǎng)頁(yè).
語(yǔ)義標記為設備提供了所需的相關(guān)信息,就省去了你自己去考慮所有可能的顯示情況(包括現有的或者將來(lái)新的設備).例如,一部手機可以選擇使一段標記了標題的文字以粗體顯示.而掌上電腦可能會(huì )以比較大的字體來(lái)顯示.無(wú)論哪種方式一旦你對文本標記為標題,您就可以確信讀取設備將根據其自身的條件來(lái)合適地顯示頁(yè)面.
4.搜索引擎的爬蟲(chóng)也依賴(lài)于標記來(lái)確定上下文和各個(gè)關(guān)鍵字的權重.
過(guò)去你可能還沒(méi)有考慮搜索引擎的爬蟲(chóng)也是網(wǎng)站的“訪(fǎng)客”,但現在它們他們實(shí)際上是極其寶貴的用戶(hù).沒(méi)有他們的話(huà),搜索引擎將無(wú)法索引你的網(wǎng)站,然后一般用戶(hù)將很難過(guò)來(lái)訪(fǎng)問(wèn).
5.你的頁(yè)面是否對爬蟲(chóng)容易理解非常重要,因為爬蟲(chóng)很大程度上會(huì )忽略用于表現的標記,而只注重語(yǔ)義標記.
因此,如果頁(yè)面文件的標題被標記,而不是,那么這個(gè)頁(yè)面在搜索結果的位置可能會(huì )比較靠后.除了提升易用性外,語(yǔ)義標記有利于正確使用CSS和JavaScript,因為其本身提供了許多“鉤鉤”來(lái)應用頁(yè)面的樣式與行為.
SEO主要還是靠你網(wǎng)站的內容和外部鏈接的。
6.便于團隊開(kāi)發(fā)和維護
W3C給我們定了一個(gè)很好的標準,在團隊中大家都遵循這個(gè)標準,可以減少很多差異化的東西,方便開(kāi)發(fā)和維護,提高開(kāi)發(fā)效率,甚至 實(shí)現模塊化開(kāi)發(fā)。
如有不同觀(guān)點(diǎn),補充,歡迎留言討論。
感謝鬼哥,奶茶,小志,偷米飯,Caspar還有css森林群的討論
【語(yǔ)義化的HTML結構怎么理解】相關(guān)文章:
實(shí)現html方法結構化10-01
象棋棋譜口訣怎么理解01-08
HTML的語(yǔ)言剖析10-13
過(guò)濾HTML代碼08-29
javascript的閉包概念怎么理解06-15
考研英語(yǔ)閱讀理解怎么提高08-05
考研英語(yǔ)閱讀理解怎么復習10-20
怎么做好英語(yǔ)閱讀理解05-21
服裝模特怎么理解服裝09-04