zoukankan      html  css  js  c++  java
  • IE浏览器兼容性问题解决方案

    IE浏览器兼容性问题解决方案
    一、CSS常见问题

    1、H5标签兼容性

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

    2、元素浮动之后,能设置宽度的话就给元素加宽度,如果需要宽度是内容撑开的,就给它里边的块元素加上浮动float:left;

    3、第一块元素浮动,第二块元素加margin-left值等于第一块元素宽度,在IE6下会有间隙问题

      解决方案:不要用margin-left,给两个元素都加上浮动float:left;

    4、IE6下子元素超出父级宽高,会把父级宽高撑开,比如用于放置轮播的ul宽度会超出父元素

      解决方案:不要让子元素的宽高超过父级

    5、P包含块元素嵌套规则

      牢记规则:p、h标签不能嵌套块元素

    二、CSS兼容性问题

    1、margin兼容性问题

      1)margin-top传递,子元素上下margin会传递给父级

      阻止:触发BFC(如overflow:hidden;拯救标准浏览器及IE78)、触发IE的haslayout  zoom:1(拯救IE67);

      2)上下margin叠压(触发条件:同级元素,第一个元素的下与第二个元素的上会叠压在一起)

      解决方案:两个元素分开设置margin,然后尽量使用同一方向的margin,比如margin-top

    2、display:inline-block;   块元素变为内联块, IE67不兼容;内联元素变为内联块,所有浏览器都支持

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

      发现问题:当然,变为内联块后,有一个特性就是如果元素换行,在页面上元素之间就会有空隙的,空隙大小为一个空格的像素大小。

    3、IE6元素最小高度为19px

      解决方案:overflow:hidden;

    4、IE67双边距,当元素浮动后,再设置margin,那么就会产生双倍边距

      解决方案:针对IE67,添加*display:inline;样式,比如页面上横向排列的几组块,会经常遇到

    5、li里元素都浮动,在IE67下方会产生4px间隙问题

      解决方案:针对IE67,添加*vertical-align:top;样式

    6、IE6下,两个浮动元素之间有注释或者内联元素并且和父级宽度相差不超过3px,会导致多复制一些文字问题

      解决方案:1)两个浮动元素之间避免出现内联元素或者注释

           2)与父级宽度相差3px或以上  

    7、IE67父级元素的overflow:hidden;子元素设置position:relative后,就包不住子元素了

       解决方案:针对IE67,给父级元素添加position:relative;

    8、IE6下绝对定位元素父级宽高是奇数,绝对定位元素的right和bottom值会有1px的偏差

       解决方案:避免父级宽度出现奇数

    9、IE6下绝对定位元素和浮动元素并列绝对定位元素消失

       解决方案:浮动元素和绝对定位元素时同级的话,定位元素就会消失,只要让它们两个不处于同级就可以避免这个bug了

    10、IE6下input的空隙

       解决方案:针对IE67,给input元素添加*float:left;

  • 相关阅读:
    Proj THUDBFuzz Paper Reading: PMFuzz: Test Case Generation for Persistent Memory Programs
    入围 WF 后训练记
    算法竞赛历程
    2021 多校 杭电 第十场
    2021 多校 杭电 第九场
    2021 多校 牛客 第十场
    2021 多校 牛客 第九场
    2021 多校 杭电 第八场
    2021 多校 杭电 第六场
    2021 多校 杭电 第七场
  • 原文地址:https://www.cnblogs.com/DZzzz/p/8995316.html
Copyright © 2011-2022 走看看