瀏覽器相容性問題彙總(轉)
1、css3 box-shadow 對於不同的瀏覽器,相容問題的解決辦法:
.box_shadow{ background-color: #eee; filter: progid:DXImageTransform.Microsoft.Shadow(color='#969696', Direction=135, Strength=5);/*for ie6,7,8*/ -moz-box-shadow:2px 2px 5px #969696;/*firefox*/ -webkit-box-shadow:2px 2px 5px #969696;/*webkit*/ box-shadow:2px 2px 5px #969696;/*opera或ie9*/ }
2、各個瀏覽器之間顯示字型不一致的解決辦法
統一設定全域性字型:
body{font-family: '微軟雅黑';}
3、去掉谷歌瀏覽器輸入框內自帶黃色背景
input:-webkit-autofill {-webkit-box-shadow: 0 0 0px 1000px white inset;}
4、去掉IE瀏覽器中輸入框右邊的小圖示(叉號和眼睛)
::-ms-clear, ::-ms-reveal{display: none;}
5、去掉谷歌瀏覽器下輸入框自帶邊框
.class{outline:none}
6、禁止表單的自動填充功能
autocomplete=”off”。
7、取消chrome下textarea可拖動放大
textarea{resize:none}
8、標籤最低高度 min-height不相容
因為min-height本身就是一個不相容的css屬性,所以正確的做法是:
{min-height:200px; height:auto !important; height:200px; overflow:visible;}
9、 /* CSS hack*/
使用hacker我可以把瀏覽器分為3類:IE6 ;IE7和遨遊;其他(IE8 chrome ff safari opera等)
◆IE6認識的hacker 是下劃線_ 和星號 *
◆IE7 遨遊認識的hacker是星號 *
比如這樣一個CSS設定:
height:300px;*height:200px;_height:100px;
IE6瀏覽器在讀到height:300px的時候會認為高時300px;繼續往下讀,他也認識*heihgt, 所以當IE6讀到*height:200px的時候會覆蓋掉前一條的相沖突設定,認為高度是200px。繼續往下讀,IE6還認識_height,所以他又會覆蓋掉200px高的設定,把高度設定為100px;
IE7和遨遊也是一樣的從高度300px的設定往下讀。當它們讀到*height200px的時候就停下了,因為它們不認識_height。所以它們會把高度解析為200px,剩下的瀏覽器只認識第一個height:300px;所以他們會把高度解析為300px。因為優先順序相同且想衝突的屬性設定後一個會覆蓋掉前一個,所以書寫的次序是很重要的
10、不同瀏覽器預設的內邊距和外邊距不同
*{margin:0;padding:0;}
11、div用float佈局後並且設定了margin屬性的情況下,在ie6下margin比設定的要大
在float樣式中加入display:inline;將其轉化為行內元素
12、當給標籤設定高度小於10px時,IE6,IE7,遨遊高度會超出設定高度
給標籤設定overflow:hidden;或者把line-height設定成小於本來要設定的高度(這個問題的原因是IE8之前的瀏覽器都會給一個預設的行高)
13、行內元素設定了display:block;後又用float佈局並且設定了margin的情況下,ie6間距bug問題
在display:block;後加display:inline;display:table;
14、多個<img>放在同一行時,有些瀏覽器會出現圖片之間有間隙的情況,加了萬用字元設定也不起作用
使用float為img佈局