HTML5作為萬維網(wǎng)的核心語言、標(biāo)準(zhǔn)通用標(biāo)記語言下的一個(gè)應(yīng)用超文本標(biāo)記語言的最新版本,其強(qiáng)大的功能和兼容性讓其具有廣闊的發(fā)展前景。不過中培偉業(yè)《HTML5開發(fā)最佳實(shí)踐應(yīng)用》培訓(xùn)專家張老師表示,由于很多人對(duì)HTML5的性能不夠充分了解,在應(yīng)用過程中往往會(huì)出現(xiàn)錯(cuò)誤的用法。張老師在這里介紹了6種HTML5錯(cuò)誤用法及其避免方法。
一、不要使用section作為div的替代品
人們?cè)跇?biāo)簽使用中最常見到的錯(cuò)誤之一就是隨意將HTML5的——具體地說,就是直接用作替代品(用于樣式)。
二、只在需要的時(shí)候使用header和hgroup
寫不需要寫的標(biāo)簽當(dāng)然是毫無意義的。不幸的是,張老師經(jīng)常看到header和hgroup被無意義的濫用。你可以閱讀一下關(guān)于header和hgroup元素的兩篇文章做一個(gè)詳細(xì)的了解,其中內(nèi)容張老師簡單總結(jié)如下:
header元素表示的是一組介紹性或者導(dǎo)航性質(zhì)的輔助文字,經(jīng)常用作section的頭部
當(dāng)頭部有多層結(jié)構(gòu)時(shí),比如有子頭部,副標(biāo)題,各種標(biāo)識(shí)文字等,使用hgroup將h1-h6元素組合起來作為section的頭部
如果你的header元素只包含一個(gè)頭部元素,那么丟棄header元素吧。既然article元素已經(jīng)保證了頭部會(huì)出現(xiàn)在文檔概要中,而header又不能包含多個(gè)元素(如上文所定義的),那么為什么要寫多余的代碼。
三、不要把所有列表式的鏈接放在nav里
隨著HTML5引入了30個(gè)新元素(截止到原文發(fā)布時(shí)),我們?cè)跇?gòu)造語義化和結(jié)構(gòu)化的標(biāo)簽時(shí)的選擇也變得有些不慎重。也就是說,我們不應(yīng)該濫用超語義化的元素。不幸的是,nav就是這樣一個(gè)被濫用的例子。nav元素表示頁面中鏈接到其他頁面或者本頁面其他部分的區(qū)塊;包含導(dǎo)航連接的區(qū)塊。
注意:不是所有頁面上的鏈接都需要放在nav元素中——這個(gè)元素本意是用作主要的導(dǎo)航區(qū)塊。舉個(gè)具體的例子,在footer中經(jīng)常會(huì)有眾多的鏈接,比如服務(wù)條款,主頁,版權(quán)聲明頁等等。footer元素自身已經(jīng)足以應(yīng)付這些情況,雖然nav元素也可以用在這里,但通常我們認(rèn)為是不必要的。
四、figure元素的常見錯(cuò)誤
figure以及figcaption的正確使用,確實(shí)是難以駕馭。規(guī)范中將figure描述為“一些流動(dòng)的內(nèi)容,有時(shí)候會(huì)有包含于自身的標(biāo)題說明。一般在文檔流中會(huì)作為獨(dú)立的單元引用?!边@正是figure的美妙之處——它可以從主內(nèi)容頁移動(dòng)到sidebar中,而不影響文檔流。
五、不要使用不必要的type屬性
這是個(gè)常見的問題,但并不是一個(gè)錯(cuò)誤,張老師認(rèn)為我們應(yīng)該通過最佳實(shí)踐來避免這種風(fēng)格。
在HTML5中,script和style元素不再需要type屬性。然而這些很可能會(huì)被你的CMS自動(dòng)加上,所以要移除也不是那么的輕松。但如果你是手工編碼或者你完全可以控制你的模板的話,那真的沒有什么理由再去包含type屬性。所有的瀏覽器都認(rèn)為腳本是javascript而樣式是css樣式,你沒必要再多此一舉了。
六、form屬性的錯(cuò)誤使用
HTML5引入了一些form的新屬性,比如布爾屬性 一些多媒體元素和其他元素也具有布爾屬性。這里所說的規(guī)則也同樣適用。有一些新的form屬性是布爾型的,意味著它們只要出現(xiàn)在標(biāo)簽中,就保證了相應(yīng)的行為已經(jīng)設(shè)置。