前端開發(fā)IE下兼容性處理
主流瀏覽器,IE 6,7 ,chrome ,F(xiàn)irefox, Safari
H5標(biāo)簽兼容:IE6無法兼容H5標(biāo)簽兼容,常見標(biāo) 簽,header,footer,section
.IE6下不支持H5標(biāo)簽,通過原生js方法document.createElement(‘header’)動態(tài)創(chuàng)建元素; css
中為元素增加display:block;屬性。方可成功加載H5元素樣式。或者下載html5shiv.js 插件引入到頁面更加直接。
同一個父元素box下面有兩個元素left和right, left和right 寬度均設(shè)為200px; left
設(shè)為float:left,right
不浮動情況下設(shè)置margin-left:200px會造成在IE6下面產(chǎn)生空隙,解決辦法是不能用margin-left。Left和right均采用
float:
IE6下子元素設(shè)置的寬和高都是400px,父元素設(shè)置寬高200px, 子元素會撐開而是被父元素包裹住,解決措施不建議子元素寬高超過父元素。
P元素包含塊元素規(guī)則,P元素下面包裹div在chrome下會出錯,h標(biāo)簽和td標(biāo)簽均不能嵌套塊元素。
margin-top 傳遞和margin
上下疊壓重合問題。父元素box不設(shè)置寬高,兩個子元素設(shè)置一個margin:50px屬性后,會導(dǎo)致上下兩個子元素上下margin沒有,緊貼父元素顯
示。解決margin傳遞:chrome下面直接給父元素設(shè)置,border屬性;IE需要設(shè)置overflow:hidden和zoom:1(針對
IE6). 上下兩個子元素的margin是50px而不是100px,
解決方式是設(shè)置樣式時候盡量使用同一方向的margin,要么設(shè)置margin-top或者margin-bottom。
IE6,7雙邊距:IE下面多個子元素浮動浮動后再設(shè)置margin-left屬性,第一個元素會產(chǎn)生雙倍邊距導(dǎo)致元素?fù)Q行,解決方案:添加*display:。在IE下設(shè)置margin-right屬性不受影響。
ul下面的多個li內(nèi)部子元素浮動后,在IE6 下面多個li會產(chǎn)生4px的間隙,解決方案:針對IE6,7給li元素添加垂直對齊vertical-align:top;
display:inline-block屬性讓IE6,7兼容,需要添加*display:inline和zoom:1.
IE6 最小高度,div設(shè)置height:1px; IE下面高度明顯高于解決最小高度可以添加*overflow:hidden;IE6 下最小高度19px,解決加上overflow:hidden。
父級和子級都有定位,且父級寬高是奇數(shù),IE下面子元素會和父級元素有1px偏差,例如父級別相對定位,子元素絕對定位,bottom:0;right:0;此時子元素和父元素會有1px空隙。解決方案:父元素寬高設(shè)定避免使用奇數(shù)。
IE6 下input 元素會有間隙,解決措施給input 增加float屬性。
css hack : \9 屬性在IE10及9,8.7.6.5下面都支持, *屬性是IE7 以及7以下的版本兼容。
_屬性是IE6以及6以下的版本。
IE 6不支持PNG24 圖片,方式1
引用DD_belatedPNG_0.0.8a.js文件,調(diào)用方法DD_belatedPNG..fix(‘img’); 方式2 用濾鏡
background:url(“../images/login_jm.png”) no-repeat center top;_
background-image: none;
_filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src=’static/images/login_jm.png’);
14 .樣式優(yōu)先級:!important 比行間樣式厲害,background-color:red !important;