本文匯總了一些CSS的瀏覽器兼容性的hack,都是非常常用的,作為一個前端設(shè)計師經(jīng)常能夠用到,這里推薦給大家。
IE6/7實現(xiàn)display:inline-block
有兩種方法,第一種,先聲明該元素display:inline-block,觸發(fā)其layout,再在第二條樣式上再聲明為display:inline,如:
復制代碼代碼如下:
.test{display:inline-block; /*其他樣式...*/}
.test{display:inline;}
第二種方法(推薦),利用IE6/7的Css專有前綴來觸發(fā)layout(感覺怎么有點像js的setTimeout):
復制代碼代碼如下:
.test{display:inline-block; *zoom: 1; *display: inline;}
IE6雙倍浮動行距
在IE6下,當一個div在另一個div向左浮動,并且?guī)в衜argin-left的樣式,那么這時它的左邊距是樣式定義的雙倍,同理如果是向右浮動和margin-right,效果是一樣的。不過在此后浮動的div的邊距反倒是沒問題的,只是第一個有此問題。
這時,解決的方法是:簡單給該div加個_display:inline;樣式即可
IE6-IE10的css hack
復制代碼代碼如下:
p{
color: black; /*IE10*/
color: orange\0; /*IE8,IE9*/
*color: blue; /*IE6,IE7*/
_color: red; /*IE6*/
}
:root p{
color: yellow\0; /*IE9*/
}
IE7/8下PNG圖片背景有黑色的東西
那是因為你使用了濾鏡效果,比如filter:alpha(opacity=100);,把它去掉就可以了
IE7/8下元素無故消失、看不見、點擊不了
在其他瀏覽器明明是有東西的,但來到IE7/8就無故消失了。出現(xiàn)這種情況,你試下給該元素添加background:red;或者之前是去掉文字的text-indent:-9999em; font-size:0;的,改為font-size:18px; text-indent:0;,你就會發(fā)現(xiàn)消失的元素終于又出現(xiàn)了。對于這種方法,解決方法是,在IE7/8下,給該元素添加背景色。但同時你不想讓該元素可視,那么就加上 opacity:0; filter:alpha(opacity=0);
IE7/8下樣式載入不完全
那應(yīng)該是css文件的charset聲明和文件本身的編碼不一致問題,將這個改正一下即可。