先溫習(xí)一下對(duì)于IE的box-model的破解
IE box-model這個(gè)臭名昭著的bug存在于IE6/Win以前的每一只版本,這個(gè)蟲(chóng)子直到tantak發(fā)布了流傳最為廣泛的那個(gè)hack才開(kāi)始被馴服
http://www.tantek.com/CSS/Examples/boxmodelhack.html
IE5.X/win對(duì)box-model的解析是一樣的,他們認(rèn)為width包括了邊框(border)和補(bǔ)白(padding),幸運(yùn)的是這個(gè)情況在IE6中有了好轉(zhuǎn)
但是IE6在向后兼容的同時(shí)也包容了以前的錯(cuò)誤,IE6其實(shí)有兩個(gè)核心,在舊的頁(yè)面前他仍舊表現(xiàn)出對(duì)錯(cuò)誤的寬容,只有在文檔中嚴(yán)格地加上文檔類(lèi)型(DOCTYPE)聲明,IE6才能夠接受正確的box-model
所以,tantak的hack必須和正確的DOCTYPE同時(shí)包含在文檔中才能夠正常工作
現(xiàn)在回到主題,我們經(jīng)常看到!important和(空格)/**/:組合在一起使用,這個(gè)寫(xiě)法有什么奧妙呢?
看剛才那個(gè)寫(xiě)法,我這里可以提供另一種寫(xiě)法也能達(dá)到這樣的效果
同樣,這個(gè)方法仍必須依靠正確的文檔類(lèi)型聲明才能夠正常工作,原因在前面已經(jīng)說(shuō)過(guò)。
文檔類(lèi)型聲明就像一個(gè)開(kāi)關(guān),打開(kāi)向后兼容的未來(lái),而錯(cuò)誤使用的話(huà),就是一個(gè)Pandora box.
具體的兼容性問(wèn)題查看此圖
新聞熱點(diǎn)
疑難解答
圖片精選