最多見的幾種兼容問題:
1.不一樣瀏覽器的標籤默認的外補丁和內補丁不一樣html
在各個瀏覽器中,不加樣式的狀況下,各自的margin和padding差別較大。
解決方法:在CSS中寫*{margin:0px;padding:0px}
2.子元素綁架父元素的margin-top
在非IE瀏覽器中,若是父元素與子元素之間沒有任何內容,在設置子元素的margin-top的時候,常常會出現父元素隨着子元素一塊兒動。
解決辦法能夠有2個,一個是在父元素與子元素之間加入一個佔位行,<div stye=‘height:0’> </div>;還有一個辦法是設置父元素的內上邊距值(padding-top).
3.塊級標籤float後要設置橫向的margin值
在IE6瀏覽器中,設置的橫向margin值會加倍
解決辦法就是將塊級標籤設置爲行級標籤,display:inline.
4.設置有最小寬度、高度,最大寬度、高度時。
在IE6瀏覽器中,不支持以上所說的屬性。
解決辦法:div{width:200px;height:200px;_width:200px;_height:200px},該方法是利用了IE6的一個特徵,當定義一個高度時,若是內容超太高度,元素會自動調整高度。
5.設置元素的透明度。
在IE瀏覽器中支持filter:alpha(opacity=80);
非IE瀏覽器支持opacity:0.8;
下面是IE678版本的hack:
.header {_width:100px;} /* IE6專用*/
.header {*width:100px;} /* IE六、IE7共用*/
.header {width:100px\0;} /* IE8*/
.header {width:100px\9;} /* IE6、IE7、IE8共用*/
*+html .header{} /*IE7*/
在IE6中!important的特殊用法:
ie6中,同一個大括號裏對同一個樣式屬性定義,其中一個加!important 則!important標記是被忽略的。瀏覽器
例:{background:red!important; background:green;} 。ie6下解釋爲背景色green,其它瀏覽器解釋爲背景色red;
spa
若是這同一個樣式在不一樣大括號裏定義,其中一個加important 則!important發揮正經常使用。 htm
例:div{background:red!important} div{background:green},這時全部瀏覽器統一解釋背景色red。
ci