IE6 的兼容相關問題


因為在實習公司要求兼容IE6+,所以將IE6相關的樣式兼容問題列出,及解決方案。


 

 

1.讓頁面變丑的透明背景圖片問題:

HTML都為以下代碼:

<div class="img-png"></div>

一般情況下使用png格式圖片作為背景圖片CSS部分:

1.img-png{
2       width:64px;
3       height:64px; 
4       background: url("imgsss/day.png") no-repeat;
5}

效果圖:

                 chrome下:    IE6下:

                        

  IE6下是不是很丑,帶一個灰色的底色。面對這種問題,解決方案是:針對IE6,使用 png8格式的圖片來做背景圖片,在IE6效果如下:

      

  終於沒那么丑了,但是最好分開寫,只在IE6時使用png8,因為png8色彩度等很低,會影響圖片質量。分開的寫法如下:

1 .img-png{
2       width:64px;
3       height:64px; 
4       background: url("imgsss/day.png") no-repeat;/*IE6自動跳過*/
5       _background:url("imgsss/day-png8.png");/*顯示此樣式*/
6   }

2.讓帶有透明度背景顏色消失的問題:

HTML部分同上一條;

一般寫法的情況下的CSS部分:

1   body{background: blue;}
2   .img-png{
3       width:64px;
4       height:64px; 
5       background-color: #000;
6       opacity: 0.5;
7   }

chrome下:       IE6下:

              

是不是看完整個人都不好了,變成一塊黑了,對於此現象解決方法是:(運行效果跟chrome相同啦~)

.img-png{
      width:64px;
      height:64px; 
      background-color: #000;
      opacity: 0.5;
    filter: alpha(opacity=70);/*增加此方法*/
  }

 

3.IE6怪異解析將padding與border算入寬高:

看看你的HTML第一行是不是沒有寫文檔申明!

因為沒加入文檔聲明<!doctype html> ,所以造成非盒模型解析的原因,加入就好了。

 


 

 

4.當塊元素左右浮動,設定margin時造成雙倍邊距:

使元素變成行內元素:display:inline

 

 


 

5.內部盒模型超出父級,父級被撐大:

在父級元素內使用overflow:hidden,隱藏超出內容

 


 

6.img作為塊元素時,底邊多出空白,並且帶有藍色的邊框:

 對於多出邊框(3種方法):

  a.讓父級設置 overflow:hidden;
  b.設置 img{display:block;}

  c.設置 _margin:-5px;
對於圖片帶有藍邊的問題:

  設置 img{border:none;}

 


 

 

7.li間有間距(3種方法):

    a.設置float:left;

  b.設置display:inline;

  c.給li中文本末尾添加一個空格


 

 

8.塊級元素中含有 文字和帶有右浮動的元素,右浮動的行內元素自動換行:

HTML部分:

<h3>我是個標題<a href="" style="float:right">更多>></a></h3>

CSS部分:

body{background: yellow;width: 30%;margin: 0 auto;color: #444444;}

chrome下:

IE6下:

解決方案,將你想要右浮動的行內元素放在文字的前面,就變成跟chrome一樣想要的效果了:

<h3><a href="" style="float:right">更多>></a>我是個標題</h3>

 

9.設置position屬性時,left、top發生錯位:

為想要作為參照的父級(position:relative;),設置寬高或者添加 *zoom:1;

 


 

 

10.子級中設有position屬性,導致父級overflow失效:

為父級設置 position:relative;

 


 

 

11.圓角問題:

使用圓角圖片定位到邊框(不然就放棄在IE6的圓角效果,不影響功能)

 


 

 

12.IE6背景閃爍 

將鏈接、按鈕用CSS sprites作為背景,鼠標觸碰會發生閃爍的情況,因為IE6沒有將圖片緩存,每次觸碰都會重新加載,解決方法(2種):

  a.不使用雪碧圖

  b.用JavaScript設置IE6緩存這些圖片: 

document.execCommand("BackgroundImageCache",false,true); 

 


 

 

13.IE6調整窗口大小時,body居中,body里的相對定位元素固定不動:

給body設置 position:relative;即可

 


 

大部分解決方案都親測有效 ,會隨着遇到的更多問題來繼續添加。

so 未完待續~


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM