• 浏览器常见兼容性问题汇总


    1、随便写几个标签,不加样式控制的情况下,各自的margin 和padding差异较大,解决方案是:*{margin:0;padding:0;}

    2、块属性标签float后,又有横行的margin情况下,在IE6显示margin比设置的大,常出现的问题是IE6中后面的一块被顶到下一行,解决方案是:在float的标签样式控制中加入 display:inline;将其转化为行内属性

    3、设置较小高度标签(一般小于10px),在IE6,IE7,遨游中高度超出自己设置高度,这是因为这些浏览器下有默认行高,解决方案是:给超出高度的标签设置overflow:hidden;或者设置行高line-height 小于你设置的高度。

    4、几个img标签放在一起的时候,有些浏览器会有默认的间距,加了 *{margin:0;padding:0;} 也不起作用,这是因为多个image标签进行了换行,解决方案是:使用float属性为img布局

    5、一个父标签与几个子标签嵌套,父标签不浮动,子标签float,子标签不撑开父的高度。解决方案是:a、 在子标签最后清浮动{<div style="height:0;clear:both;">&nbsp;</div>} b 父标签添加{overflow:hidden;} c 给父标签设置高度。对于方法a,我们在html结构中添加了额外的div标签,不利于后期阅读和维护,现在我们采用after属性来设置清除浮动,比如这里提到的父标签为<div id="container"></div>,只需要设置CSS样式#container:after{content:'.';display: block;clear: both;height: 0;overflow:hidden;visibility: hidden;},这样就清楚了浮动,又没有增加额外的标签。

    6、Ie6下,不识别最大宽、高度和最小宽高度,意即min-width/height和 Max-width/height在ie6中没效果

    解决方法:(1):.abc{border:1px blue solid;200px;height:200px;}
                              html>body .abc{auto;height:auto;min-200px;min-height:200px;}
            (2):.abc{200px;height:200px;_200px;_height:200px;}(因为ie6有一个特征,当定义一个高度时,如果内容超过高度,元素会自动调整高度。)
    7、Ie6里面:如li设宽、高,并且li里面的标签浮动,那么li之间会有间距,解决方案是:li不设宽、高或者li内的标签不浮动
    8、3像素问题:ie6下,当浮动元素与流动元素并列显示时,他们之间会存在三像素问题,解决方案是:让流动元素(即非浮动元素)也设置float:left就可以了
    9、opacity 定义元素的不透明度,  解决方案是:filter:alpha(opacity=80);/*ie支持该属性*/     opacity:0.8;/*支持css3的浏览器*/
    10、两个块元素,竖向的margin值不增加,会重叠,其间距为最大margin值。
    11、优先级:被!important 注明的css属性具有最高优先级(.abc{color:red !important;})。但在ie6中!important具有一个bug:在同一组css属性中,!important不起作用。
    12、火狐不识别background-position-y 或background-position-x;
    13、IE6不支持fixed
    1 #top{  
    2     position:fixed;  
    3     _position:absolute;  
    4     top:0;  
    5     right:20px;  
    6     _bottom:auto;  
    7     _top:expression(eval(document.documentElement.scrollTop));
    8 }  

    14、解决 ie6 最大、最小宽高 hack方法

     1 /* 最小宽度 */
     2 .min_width{
     3     min-300px;
     4     _expression(parseInt(this.clientWidth) < 300 ? "300px" : this.clientWidth);
     5 }
     6 
     7 /* 最大宽度 */
     8 .max_width{
     9    max-600px;
    10    _expression(parseInt(this.clientWidth) > 600 ? "600px" : this.clientWidth);
    11 }
    12 
    13 /* 最小高度 */
    14 .min_height{
    15    min-height:200px;
    16    _height:expression(parseInt(this.clientHeight) < 200 ? "200px" : this.clientHeight);
    17 }
    18 
    19 /* 最大高度 */
    20 .max_height{
    21    max-height:400px;
    22    _height:expression(parseInt(this.clientHeight) > 400 ? "400px" : this.clientHeight);
    23 }

    15、z-index不起作用的 bug

    ie6下 首先讲讲第一种z-index无论设置多高都不起作用情况。这种情况发生的条件有两个:1、父标签position属性为relative;2、问题标签含有浮动(float)属性。在IE6下,层级的表现有时候不是看子标签的z-index多高,而要看它们的父标签的z-index谁高谁低。

    16、IE各版本Hack

     1 /*类内部hack:*/
     2     .header {_100px;}            /* IE6专用*/    //最好把IE6 hack写在最后一行
     3     .header {*+100px;}        /* IE7专用*/
     4     .header {*100px;}            /* IE6、IE7共用*/
     5     .header {100px;}        /* IE8、IE9共用*/
     6     .header {100px9;}        /* IE6、IE7、IE8、IE9共用*/
     7     .header {330px9;}    /* IE9专用*/
     8 
     9 /*选择器Hack:*/
    10     *html .header{}        /*IE6*/ 
    11     *+html .header{}    /*IE7*/ 

     17、IE6下hover只支持a标签,解决方案是可以合理嵌套a标签或是给标签用javascript添加模拟hover效果

    18、IE6中png格式图片不支持透明,解决方案是使用javascript进行处理;或者使用gif、jpg图像替代掉png图片的使用。

    19、input聚焦框颜色与样式各浏览器不同,解决方法是使用:outline:none,清除默认样式后再统一设置。

    20、鼠标移上小手效果,IE6为cursor:hand  CSS标准:cursor:pointer  所以解决方案是这两种一起设置: cursor:hand;cursor:pointer

    21、CSS优先级!important在IE6 同一组CSS属性中,!important不起作用,解决方法是单独设置

  • 相关阅读:
    perl dbi 控制事务
    READ-COMMITTED 不能进行可重复读和防止幻读
    REPEATABLE-READ 预读
    如何规划农商行商业智能系统中的决策分析系统?
    如何规划农商行商业智能系统中的决策分析系统?
    【MySQL】gap lock 浅析
    REPEATABLE-READ和READ-COMMITTED幻读
    ORA-01555: snapshot too old
    CXF动态客户端调用webservice实例
    mysql 区间锁
  • 原文地址:https://www.cnblogs.com/yxz-turing/p/4814129.html
Copyright © 2020-2023  润新知