E令人咬牙切齒的bug不勝枚舉,其中IE6更是臭名昭著,令人發指。這里總結出IE下最為嚴重的5個bug,及其應對方案。
1、IE6下無法顯示png格式的透明信息
這個bug是眾多網頁設計師的噩夢,雖然可以采用gif代替,但是gif的表現力實在有限,單是陰影就無法完美顯示了,這無疑給網頁的表現力下了一個檔次。
解決方案:
- img{
- filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(...);
- }
主要利用IE濾鏡來解決png無法透明的問題。
接下來來看第二種解決方案:js
點此下載
上面是jquery用於解決這個bug的插件,強烈推薦!
2、IE6下遮罩層無法覆蓋選擇框
解決這個bug請看我之前寫的一篇博文:http://www.36ria.cn/?p=395
3、IE6下雙倍外邊距問題
又是一個令人發指的bug,IE6下設置margin-left或margin-right,居然會自動加倍。
解決方案:
- div#content{
- float:left;
- width:200px;
- margin-left:10px;
- /* fixthedoublemarginerror*/
- display:inline;
- }
原理:關鍵是 display:inline; ,將其轉換為內聯元素。
4、:hover 只支持a,無法應用於其他元素
眾所周知,在網頁里面鼠標移動切換樣式,是個應用非常廣泛的功能,可是IE6下只支持鏈接,其他元素都無法使用:hover。
解決方案:JS
- /* jQuery Script */
- $('#list li').hover(
- function (){
- $(this).addClass('color');
- },
- function() {
- $(this).removeClass('color');
- }
- );
- /*CSSStyle*/
- .color {
- background-color:#f00;
- }
- <ulid="list">
- <li>Item 1</li>
- <li>Item 2</li>
- <li>Item 3</li>
- </ul>
原理:利用jquery的特殊的hover事件
5、IE下不顯示默認的垂直滾動條
解決方案如下:
- html{
- overflow: auto;
- }