常见的CSS bug和CSS hack (IE6兼容问题)

1)图片间隙

        A) div中的图片间隙(该bug出现在所有浏览器中)
        描述:在div中插入图片时,图片将会把div下方撑大三像素。
        hack:将< img>中转为块级元素,给< img>添加声明:display:block;
        B) 当图片横着排列的时候,图片与图片之间存在一定的间距;
        hack:img{float:left;}

2)dt,li中图片间隙

        hack:img{display:block;}

3) 双倍浮向(双倍间距)(只有IE6出现)

    描述:在IE6中,一个居左(或居右)浮动的元素放进一个容器盒(box),并在浮动元素上使用了左边距(或右边距),在IE6中会产生双倍边距。
    hack:给浮动元素添加声明:display:inline;

4) 图片在IE浏览器上有蓝色的边框(加在a标签里)

    hack:img{border:0;}

5)默认高度(IE6、IE7)

    描述:在IE6及以下版本中,部分块元素拥有默认高度(低于18px高度)
    hack1:给元素添加声明:font-siaze:0;
    hack2:给元素添加声明:overflow:hidden;

6)表单元素距离顶部间距不一样(IE,MOZ,C,O,S)

    hack:给表单元素添加声明:float:left;

7)按钮元素默认大小不一

    hack1:统一大小/(或用a标签模拟)
    hack2:input外边套一个标签,在这个标签里重写按钮的样式,把input的边框去掉。
    hack3:如果这个按钮是一个图片,直接把图片作为按钮的背景即可。

8)百分比bug

    描述:在IE6及以下版本中在解析百分比是,会按照四舍五入方式计算从而导致50%加50%大于100%的情况
    hack:给右边的浮动元素添加声明:clear:right

9)子元素没设置任何浮动,设置了margin-top属性后,会错误的把margin-top属性添加给父元素

    hack:给父元素添加overflow:hidden;声明。
    *:如果子元素设置了浮动属性就不会出现这个问题

10)当给li中的a转成block;并且有height,并有float的时候,li中没设置浮动,则li会呈现阶梯状排列

    hack:同时给li加float;

11)input的type类型是text的时候,提示信息用value表示,如果设置了input的高度,在其他浏览器上显示的value的内容是垂直居中的,但是在IE6上是在顶部的,解决办法是给input添加一个行高并等于他的高度。

12)高度自适应兼容IE6

    A)!important关键字过滤(IE6不识别!important和min-height)
            {
                min-height:300px;
                height:auto !important ;
                height:300px;
                }
        B)下划线过滤(其他浏览器不识别下划线,而IE会解析该下划线,但IE不识别min-height)
            {
              _height:300px;
              min-height:300px;
              }

猜你喜欢

转载自blog.csdn.net/qq_37321858/article/details/82025177