相信大家都知道html和css,知道html結(jié)構(gòu)和css表現(xiàn)分離,知道html語義化,這些都是這幾年的熱門關(guān)鍵字。語義化的html在國(guó)內(nèi)也是一兩年前才開始被追捧的,看看現(xiàn)在群里談?wù)摰膆tml結(jié)構(gòu),關(guān)于html結(jié)構(gòu)的面試題,語義化的html占據(jù)了很大一部分。那么為什么要使用語義化的HTML?語義化的HTML到底有什么好處呢?
HTML是提供網(wǎng)頁文檔內(nèi)容的上下文結(jié)構(gòu)和含義;html本身是沒有表現(xiàn)的,我們看到例如<h1>是粗體,字體大小2em,加粗;<strong>是加粗的,不要認(rèn)為這是html的表現(xiàn),這些其實(shí)html默認(rèn)的css樣式在起作用,所以首先我們要知道html和頁面的表現(xiàn)是沒有關(guān)系的,這些是css的事情。HTML在頁面中的作用就是結(jié)構(gòu)和含義,通俗點(diǎn)說就是劃分內(nèi)容,這里放什么,我們放的是什么。
語義化的HTML結(jié)構(gòu)到底有什么好處?
我們知道HTML5新增的標(biāo)簽,比如<header>和<footer>,html正在朝著更加健壯的語義化的HTML結(jié)構(gòu)發(fā)展,xhtml2在這點(diǎn)上沒html5先進(jìn),這也是xhtml2死亡的一個(gè)原因,這一點(diǎn)也說明了語義化的HTML結(jié)構(gòu)是html的發(fā)展趨勢(shì)。
1.去掉或樣式丟失的時(shí)候能讓頁面呈現(xiàn)清晰的結(jié)構(gòu):
html本身是沒有表現(xiàn)的,我們看到例如<h1>是粗體,字體大小2em,加粗;<strong>是加粗的,不要認(rèn)為這是html的表現(xiàn),這些其實(shí)html默認(rèn)的css樣式在起作用,所以去掉或樣式丟失的時(shí)候能讓頁面呈現(xiàn)清晰的結(jié)構(gòu)不是語義化的HTML結(jié)構(gòu)的優(yōu)點(diǎn),但是瀏覽器都有有默認(rèn)樣式,默認(rèn)樣式的目的也是為了更好的表達(dá)html的語義,可以說瀏覽器的默認(rèn)樣式和語義化的HTML結(jié)構(gòu)是不可分割的。
2.屏幕閱讀器(如果訪客有視障)會(huì)完全根據(jù)你的標(biāo)記來“讀”你的網(wǎng)頁.
例如,如果你使用的含語義的標(biāo)記,屏幕閱讀器就會(huì)“逐個(gè)拼出”你的單詞,而不是試著去對(duì)它完整發(fā)音.
3.PDA、手機(jī)等設(shè)備可能無法像普通電腦的瀏覽器一樣來渲染網(wǎng)頁(通常是因?yàn)檫@些設(shè)備對(duì)CSS的支持較弱).
使用語義標(biāo)記可以確保這些設(shè)備以一種有意義的方式來渲染網(wǎng)頁.理想情況下,觀看設(shè)備的任務(wù)是符合設(shè)備本身的條件來渲染網(wǎng)頁.
語義標(biāo)記為設(shè)備提供了所需的相關(guān)信息,就省去了你自己去考慮所有可能的顯示情況(包括現(xiàn)有的或者將來新的設(shè)備).例如,一部手機(jī)可以選擇使一段標(biāo)記了標(biāo)題的文字以粗體顯示.而掌上電腦可能會(huì)以比較大的字體來顯示.無論哪種方式一旦你對(duì)文本標(biāo)記為標(biāo)題,您就可以確信讀取設(shè)備將根據(jù)其自身的條件來合適地顯示頁面.
4.搜索引擎的爬蟲也依賴于標(biāo)記來確定上下文和各個(gè)關(guān)鍵字的權(quán)重.
過去你可能還沒有考慮搜索引擎的爬蟲也是網(wǎng)站的“訪客”,但現(xiàn)在它們他們實(shí)際上是極其寶貴的用戶.沒有他們的話,搜索引擎將無法索引你的網(wǎng)站,然后一般用戶將很難過來訪問.
5.你的頁面是否對(duì)爬蟲容易理解非常重要,因?yàn)榕老x很大程度上會(huì)忽略用于表現(xiàn)的標(biāo)記,而只注重語義標(biāo)記.
因此,如果頁面文件的標(biāo)題被標(biāo)記,而不是,那么這個(gè)頁面在搜索結(jié)果的位置可能會(huì)比較靠后.除了提升易用性外,語義標(biāo)記有利于正確使用CSS和JavaScript,因?yàn)槠浔旧硖峁┝嗽S多“鉤鉤”來應(yīng)用頁面的樣式與行為.