學(xué)CSS網(wǎng)頁(yè)布局排查錯(cuò)誤出現(xiàn)的方法 |
發(fā)布時(shí)間:2024-06-30 文章來(lái)源:本站 瀏覽次數(shù):855 |
瀏覽器可能存在著很多Bug,但是并不是與自己感覺(jué)不一樣的時(shí)候就是出現(xiàn)了Bug。產(chǎn)生問(wèn)題原因可能有多種,因此制作者需要一定的方法來(lái)排查問(wèn)題
選擇一個(gè)先進(jìn)的瀏覽器進(jìn)行測(cè)試是好的做法,例如對(duì)CSS 支持比較好的Opera 9.2、或者Safari 3.0,而不要使用IE6作為唯一的測(cè)試瀏覽器,因?yàn)镮E6的問(wèn)題是比較多的,這不利于制作者理解CSS 2.1的規(guī)范與判斷瀏覽器的表現(xiàn)是否正確。
如果在先進(jìn)的瀏覽器內(nèi)測(cè)試是正確的,而在IE內(nèi)有問(wèn)題,那基本上可以判定是IE的問(wèn)題。
如果在先進(jìn)的瀏覽器內(nèi)的顯示不正確,那么可以先進(jìn)行如下初步判斷:
1. 拼寫是否正確
可以使用W3C的校驗(yàn),或者網(wǎng)頁(yè)編輯軟件的校驗(yàn)功能,來(lái)檢查(X)HTML文檔內(nèi)的標(biāo)簽是否配套、嵌套順序是否正確、空標(biāo)簽是否閉合,CSS拼寫是否正確。不正確的嵌套、錯(cuò)誤的拼寫是非常常見(jiàn)的錯(cuò)誤。
提示:現(xiàn)在有很多編輯軟件都可以提供(X)HTML和CSS的校驗(yàn)功能,包括瀏覽器對(duì)CSS屬性是否支持等。例如:Dreamweaver 8以上版本,TopStyle等軟件。
提示:Firefox中的附加軟件“Firebug”是一個(gè)非常好用的工具,它不僅可以檢查(X)HTML、CSS和JavaScript是否正確,還可以動(dòng)態(tài)顯示頁(yè)面內(nèi)元素的框和位置,是調(diào)試網(wǎng)頁(yè)很好的輔助插件。
2. 是否有合適的DTD
在本書(shū)的其他章節(jié)里,曾經(jīng)不止一次地強(qiáng)調(diào)過(guò)DOCTYPE的重要性,不同的DOCTYPE直接影響瀏覽器對(duì)于(X)HTML和CSS的解釋。
3. CSS屬性瀏覽器是否支持
雖然現(xiàn)代瀏覽器支持絕大部分的CSS 2.1規(guī)范和部分的CSS 3規(guī)范,但是在前面的章節(jié)也介紹過(guò),有一些CSS屬性還沒(méi)有被瀏覽器廣泛支持,因此在某個(gè)屬性沒(méi)有生效的時(shí)候,請(qǐng)確定瀏覽器是否支持。
4. 隔離問(wèn)題
將有問(wèn)題的地方突出出來(lái),例如給元素加一個(gè)醒目的邊框或者背景顏色。
如果增加了邊框就可以解決問(wèn)題,那么就是邊距重疊的問(wèn)題。
如果增加了背景,但是背景不顯示,那么有可能是特殊性或者浮動(dòng)元素沒(méi)有閉合。
嘗試修改一些屬性,特別是會(huì)觸發(fā)IE的hasLayout的屬性,判斷是否是IE常見(jiàn)的Bug。
5. 建立基本測(cè)試
如果還不能解決問(wèn)題,則可以復(fù)制問(wèn)題文件,然后刪除多余的(X)HTML,只留下有問(wèn)題的部分。
刪除(X)HTML內(nèi)的注釋問(wèn)題,看問(wèn)題是否會(huì)消失。
刪除元素間的空格,看問(wèn)題是否會(huì)消失。
然后分塊注釋掉樣式表,直到問(wèn)題消失,則剛注釋掉的樣式即為問(wèn)題所在。
6. 解決問(wèn)題而不是解決現(xiàn)象
找到問(wèn)題根源的所在并解決它是終目,而不是為了遷就表現(xiàn)而使用復(fù)雜的Hack來(lái)讓網(wǎng)頁(yè)“看上去很美”。不從根源上解決問(wèn)題,當(dāng)瀏覽器升級(jí)以后,可能會(huì)遇到更多的問(wèn)題。同時(shí),Hack的時(shí)候可能會(huì)造成新的問(wèn)題的出現(xiàn),特別是觸發(fā)或者避免觸發(fā)IE的hasLayout屬性。
換一種思路也許也可以避免問(wèn)題的出現(xiàn),例如將元素的margin屬性取消,改為設(shè)置其父元素的padding屬性。
只有實(shí)在無(wú)法解決的時(shí)候,再使用Hack。通過(guò)以上方法,可以幫助您更有效地排查 CSS 網(wǎng)頁(yè)布局中出現(xiàn)的錯(cuò)誤,提高開(kāi)發(fā)效率和頁(yè)面質(zhì)量。 |
|