? ? ? ? 瀏覽器兼容問題往往是前端開發人員最為頭疼的問題,問題的原因是不同的瀏覽器對同一段代碼有不同的解析,造成頁面顯示不統一的情況。那么市面上的瀏覽器那么多,比如說:ie6、7、8、8以上、firefox、chrome、safari、opera等,所以兼容性問題也是很多的。這里只是做一些我常遇到的問題的總結,大家可以互相交流,互相學習。我主要用DIV+CSS布局,希望對大家有幫助。
1.chrome下默認會將小于12px的文本強制按照12px來解析。解決辦法是給其添加屬性:-webkit-text-size-adjust: none;
2.CSS控制透明度一般就直接 opacity: 0.6 ;取值范圍0-1。但是 IE就需要寫成 filter: alpha(opacity=60);取值范圍0-100;但在IE6下又需要寫成 filter:progid:DXImageTransform.Microsoft.Alpha(style=0,opacity=60);
3.div標簽套一個img標簽下方會出現一條間隙的問題,如下:
樣式
效果(下面有1像素的小縫隙)
通常出現在firefox、ie、chrome下,一般給img添加vertical-align或給div添加line-height:0即可。
4. !important 方法現在只是不兼容IE6
5. 除了ie瀏覽器以外的其他瀏覽器,給div設置padding后寬度和高度會增加, 因為ie瀏覽器的盒模型是怪異盒模型。
解決辦法:給DIV設定多個寬度,在ie的寬度前加上ie特有標記" * "號,或在除ie瀏覽器下加box-sizing:border-box;怪異盒模型,padding就不會撐開盒子大小。
6.頁面居中問題:.div1 {text-align: center;} FireFox會失效。
解決辦法:加上"margin-right: auto; margin-left: auto; "
7.浮動元素ie6下會產生雙倍距離
這種情況之下IE6會產生200px的距離
解決辦法:加上display:inline;忽略浮動。
8.position:fixed;在ie下不兼容,所以需要用js去判斷是否為ie瀏覽器,如果是ie瀏覽器,需要用js去固定元素的位置,解決代碼如下:
判斷ie,在ie下用js固定位置