IE6瀏覽器有哪些常見的bug,缺陷或者與標準不一致的地方,如何解決
阿新 • • 發佈:2018-04-24
block 自動調整 script font aaa 方向 image ie6 浮動
- IE6不支持min-height,解決辦法使用css hack:
.target {
min-height: 100px;
height: auto !important;
height: 100px; // IE6下內容高度超過會自動擴展高度
}
-
ol
內li
的序號全為1,不遞增。解決方法:為li設置樣式display: list-item;
-
未定位父元素
overflow: auto;
,包含position: relative;
子元素,子元素高於父元素時會溢出。解決辦法:1)子元素去掉position: relative;
; 2)不能為子元素去掉定位時,父元素position: relative;
<style type="text/css"> .outer { width: 215px; height: 100px; border: 1px solid red; overflow: auto; position: relative; /* 修復bug */ } .inner { width: 100px; height: 200px; background-color: purple; position: relative; } </style> <div class="outer"> <div class="inner"></div> </div>
- IE6只支持
a
標簽的:hover
偽類,解決方法:使用js為元素監聽mouseenter,mouseleave事件,添加類實現效果:
<style type="text/css"> .p:hover, .hover { background: purple; } </style> <p class="p" id="target">aaaa bbbbb<span>DDDDDDDDDDDd</span> aaaa lkjlkjdf j</p> <script type="text/javascript"> function addClass(elem, cls) { if (elem.className) { elem.className += ‘ ‘ + cls; } else { elem.className = cls; } } function removeClass(elem, cls) { var className = ‘ ‘ + elem.className + ‘ ‘; var reg = new RegExp(‘ +‘ + cls + ‘ +‘, ‘g‘); elem.className = className.replace(reg, ‘ ‘).replace(/^ +| +$/, ‘‘); } var target = document.getElementById(‘target‘); if (target.attachEvent) { target.attachEvent(‘onmouseenter‘, function () { addClass(target, ‘hover‘); }); target.attachEvent(‘onmouseleave‘, function () { removeClass(target, ‘hover‘); }) } </script>
- IE5-8不支持
opacity
,解決辦法:
.opacity {
opacity: 0.4
filter: alpha(opacity=60); /* for IE5-7 */
-ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=60)"; /* for IE 8*/
}
- IE6在設置
height
小於font-size
時高度值為font-size
,解決辦法:font-size: 0;
- IE6不支持PNG透明背景,解決辦法: IE6下使用gif圖片
- IE6-7不支持
display: inline-block
解決辦法:設置inline並觸發hasLayout
display: inline-block;
*display: inline;
*zoom: 1;
- IE6下浮動元素在浮動方向上與父元素邊界接觸元素的外邊距會加倍。解決辦法: 1)使用padding控制間距。 2)浮動元素
display: inline;
這樣解決問題且無任何副作用:css標準規定浮動元素display:inline會自動調整為block - 通過為塊級元素設置寬度和左右margin為auto時,IE6不能實現水平居中,解決方法:為父元素設置
text-align: center;
IE6瀏覽器有哪些常見的bug,缺陷或者與標準不一致的地方,如何解決