三種瀏覽器的識別問題:
1 2 3 | #example { color: #333; } /* Moz */ * html #example { color: #666; } /* IE6 */ *+html #example { color: #999; } /* IE7 */ |
首先火狐不識別任何特殊符號,但是識別!important;而IE6識別*和_,而IE7則識別*也識別!important;但是不識別_
所以在出現IE7之前我們可以用!important;*來調整頁面,但是IE7的出現卻打亂了我們的方法!!
在大部分情況下,調整好火狐和IE7后,IE7不會出現太大的差距,一般情況下出現的問題就是
浮動ie產生的雙倍距離
舉一個網上大俠的例子:
1 2 | #box{ float:left; width:100px; margin:0 0 0 100px; //這種情況之下IE會產生200px的距離 display:inline; //使浮動忽略} |
這句display:inline很重要??!
這里牽扯到一個問題,因為IE存在CSS向后繼承,而Firefox不支持,因此如果我們不對每個標簽定義使用浮動float屬性的話,在Firefox中就會出現DIV溢出。使排版混亂.
另外的問題就是margin屬性的像素差問題.
舉個例子來解決:
margin-left:30px!important;margin-left:28px;
由于!important;只有IE7和Firefox識別,因此會默認執行margin-left:30px,而IE6不識別!important;因此會執行margin-left:28px;這樣,用相同的方法,我們就可以清除2px像素的差來達到無縫銜接.由于在使用margin 或padding 時,我們會發現padding所出現的差值問題要比margin少的多的多!因此我強烈建議大家能用padding的時候盡量不要使用margin,這樣會減少很多麻煩.