1、“節(jié)省代碼”是營(yíng)銷手段,不是宗旨
“使用div布局可以比table布局節(jié)省更多的代碼”,我在很多書籍和網(wǎng)站上見到過這句話。這句話本身是沒錯(cuò)的,可以“節(jié)省代碼”的確是網(wǎng)頁(yè)標(biāo)準(zhǔn)化所帶來(lái)的好處之一。然而切記,它只是“好處之一”,而不是“唯一好處”,更不是宗旨!肮(jié)省代碼”更多的時(shí)候是我們用來(lái)說(shuō)服那些頑固不化的老板的營(yíng)銷手段。網(wǎng)頁(yè)標(biāo)準(zhǔn)化的唯一宗旨是“結(jié)構(gòu)與表現(xiàn)分離”,而絕不是為了節(jié)省代碼而節(jié)省代碼。
2、ID是狙擊槍,class是雙刃劍
想要做好網(wǎng)頁(yè)結(jié)構(gòu),id與class都是必須熟練掌握的,所謂“兩手抓,兩手都要硬”。ID就象狙擊槍一樣,可以幫助我們精準(zhǔn)地定位要想要加載樣式的元素;而class則是俠客的佩劍,信手拈來(lái)更加輕盈靈便,兩者的結(jié)合能夠?qū)崿F(xiàn)結(jié)構(gòu)良好且表現(xiàn)豐富的頁(yè)面。然而現(xiàn)在有一種錯(cuò)誤的觀點(diǎn),就是id完全可以用class來(lái)取代,事實(shí)上許多網(wǎng)頁(yè)源代碼也的確如此,打開來(lái)通篇class,找不到一個(gè)id
3、并不是所有的內(nèi)容都需要div做“容器”
主菜單究竟是用<div id="mainnav"><ul>還是<ul id="mainnav">?這是一個(gè)博弈的問題。至今這個(gè)問題也沒有人能夠給出明確的答案,就連我也是如此。
4、工作上也做到“結(jié)構(gòu)與表現(xiàn)分離”
關(guān)于這一點(diǎn),網(wǎng)絡(luò)上很多高手都是這樣建議的,也就是先打開編輯器,把結(jié)構(gòu)完整地寫出來(lái),再去CSS里寫表現(xiàn),而盡量不去動(dòng)已經(jīng)寫好的結(jié)構(gòu)。
5、CSS不是萬(wàn)能的,沒有CSS也不是萬(wàn)萬(wàn)不能的
相比于CSS1.0時(shí)代,今天CSS可以完成更多的事情,然而需求永遠(yuǎn)是領(lǐng)先于技術(shù)的,CSS無(wú)法完成網(wǎng)頁(yè)所有的表現(xiàn)層工作,有時(shí)候我們必須結(jié)合JS或者其他語(yǔ)言來(lái)實(shí)現(xiàn)一些效果。而另一些時(shí)候,用JS的方法比只靠CSS簡(jiǎn)單得多,并且代碼結(jié)構(gòu)更加良好——最典型的例子就是下拉菜單。