IE瀏覽器兼容性問題解決方案

1、CSS常見問題javascript

一、H5標籤兼容性css

  解決方案:<script src="http://cdn.bootcss.com/html5shiv/3.7.3/html5shiv.min.js"></script>html

二、元素浮動以後,能設置寬度的話就給元素加寬度,若是須要寬度是內容撐開的,就給它裏邊的塊元素加上浮動float:left;html5

三、第一塊元素浮動,第二塊元素加margin-left值等於第一塊元素寬度,在IE6下會有間隙問題java

  解決方案:不要用margin-left,給兩個元素都加上浮動float:left;瀏覽器

四、IE6下子元素超出父級寬高,會把父級寬高撐開,好比用於放置輪播的ul寬度會超出父元素佈局

  解決方案:不要讓子元素的寬高超過父級post

五、P包含塊元素嵌套規則spa

  牢記規則:p、h標籤不能嵌套塊元素插件

2、CSS兼容性問題

一、margin兼容性問題

  1)margin-top傳遞,子元素上下margin會傳遞給父級

  阻止:觸發BFC(如overflow:hidden;拯救標準瀏覽器及IE78)、觸發IE的haslayout  zoom:1(拯救IE67);

  2)上下margin疊壓(觸發條件:同級元素,第一個元素的下與第二個元素的上會疊壓在一塊兒)

  解決方案:兩個元素分開設置margin,而後儘可能使用同一方向的margin,好比margin-top

二、display:inline-block;   塊元素變爲內聯塊, IE67不兼容;內聯元素變爲內聯塊,全部瀏覽器都支持

  解決方案:{display:inline-block; *display:inline; *zoom:1;}

  發現問題:固然,變爲內聯塊後,有一個特性就是若是元素換行,在頁面上元素之間就會有空隙的,空隙大小爲一個空格的像素大小。

三、IE6元素最小高度爲19px

  解決方案:overflow:hidden;

四、IE67雙邊距,當元素浮動後,再設置margin,那麼就會產生雙倍邊距

  解決方案:針對IE67,添加*display:inline;樣式,好比頁面上橫向排列的幾組塊,會常常遇到

五、li裏元素都浮動,在IE67下方會產生4px間隙問題

  解決方案:針對IE67,添加*vertical-align:top;樣式

六、IE6下,兩個浮動元素之間有註釋或者內聯元素而且和父級寬度相差不超過3px,會致使多複製一些文字問題

  解決方案:1)兩個浮動元素之間避免出現內聯元素或者註釋

       2)與父級寬度相差3px或以上  

七、IE67父級元素的overflow:hidden;子元素設置position:relative後,就包不住子元素了

   解決方案:針對IE67,給父級元素添加position:relative;

八、IE6下絕對定位元素父級寬高是奇數,絕對定位元素的right和bottom值會有1px的誤差

   解決方案:避免父級寬度出現奇數

九、IE6下絕對定位元素和浮動元素並列絕對定位元素消失

   解決方案:浮動元素和絕對定位元素時同級的話,定位元素就會消失,只要讓它們兩個不處於同級就能夠避免這個bug了

十、IE6下input的空隙

   解決方案:針對IE67,給input元素添加*float:left;

十一、IE6下輸入類型表單控件背景問題,背景不固定,滾動了

  解決方案:設置background-attachment:fixed;

十二、line-height  在IE6七、FF下不兼容,會有幾個像素的誤差,目測只有IE8和其餘標準瀏覽器正常

  IE6下,想給給圖片設置line-height來達到垂直居中效果是實現不了的,就給img標籤單獨設置{float:left;postion:relative;top:...}

  固然,文本的line-height仍是識別的

1三、常見文章列表佈局:標題+發佈日期  

  <ul>

    <li>這裏是文章列表標題,我是奇葩的IE瀏覽器<span style="float:right">2015-07-17</span></li>

    <li>這裏是文章列表標題2,我是奇葩的IE瀏覽器<span style="float:right">2015-07-17</span></li>

   </ul>

假設你按照以上佈局,那麼恭喜你,在IE67下發布日期會掉到下一行去

  解決方案,按以下佈局: 

  <ul>

    <li><span style="float:right">2015-07-17</span>這裏是文章列表標題,我是奇葩的IE瀏覽器</li>

    <li><span style="float:right">2015-07-17</span>這裏是文章列表標題2,我是奇葩的IE瀏覽器</li>

   </ul>

或 

  <ul>

    <li><span style="float:left">這裏是文章列表標題,我是奇葩的IE瀏覽器</span><span style="float:right">2015-07-17</span></li>

    <li><span style="float:left">這裏是文章列表標題2,我是奇葩的IE瀏覽器</span><span style="float:right">2015-07-17</span></li>

   </ul>

1四、遮罩彈窗

  標準 不透明度:opacity:0~1

  IE678濾鏡:filter:alpha(opacity=0~100);

1五、<a>的手形光標

  標準瀏覽器下,不須要設置也有

  IE6下沒有,就給a{cursor:pointer;}

1六、<a>的 text-decoration:none;

  標準下,只需 a {text-decoration:none;}

  IE6下,a {text-decoration:none;}  而且 a:hover {text-decoration:none;}

3、CSS hack

\9   IE67  8-10   例如:background:blue\9;

+*  IE67      例如:*background:yellow;  +background:yellow;

_    IE6      例如:_background:green;

 

4、png-24兼容性問題,IE6不支持

解決方案:

  1)引用Js插件,不能處理body以上的,最好放在頁面底部,這樣不影響頁面加載,也就是放在</body>標籤上面  

    <!--[if IE 6]>

      <script src="DD_belatedPNG_0.0.8a.js" type="text/javascript"></script>

      <script>

        DD_belatedPNG.fix("*");

      </script>

    <![endif]-->

 

  2)原生濾鏡,給背景圖所在的標籤加上以下樣式,好比body

    body {

        _background-image:none;

        _filter:progid:DXImage Transform.Microsoft.AlphaImageLoader(src="XX.png",sizingMethod="crop");

       }

相關文章
相關標籤/搜索