网页常见浏览器兼容问题及解决方法

常见浏览器的兼容问题

1 ie6.0横向margin加倍

产生因素:块属性、float、有横向margin

解决方法:displayinline

2 ie6.0下默认有行高

解决方法:overflow:hidden;font-size:0;line-heightxx px

3 在各个浏览器下img有空隙(原因是:回车。)

解决方法:让图片浮动。

4 一个父标签与几个子标签嵌套,父标签不浮动,子标签float,子标签不撑开父的高度。

解决方法:a 在子标签最后清浮动{ 

}

                 b 父标签添加{overflowhidden}

                 c 给父标签设置高度

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

解决方法:(1).abc{border:1px bluesolid;width:200px;height:200px;}

                        html>body .abc{width:auto;height:auto;min-width:200px;min-height:200px;}

       (2).abc{width:200px;height:200px;_width:200px;_height:200px;}(因为ie6有一个特征,当定义一个高度时,如果内容超过高度,元素会自动调整高度。)

6 Ie6里面:如li设宽、高,并且li里面的标签浮动,那么li之间会有间距

解决方法:li不设宽、高或者li内的标签不浮动

7  li之间有间距

解决方法:li 设置vertical-align:middle;

8 3像素问题:ie6下,当浮动元素与流动元素并列显示时,他们之间会存在三像素问题。

   解决方法:用hack技术,例如:所有浏览器通用 height:100px; 

                                               ie6专用_height:100px;

                                               ie7专用*+height:100px; 

                                               ie6/ie7共用*height:100px;

9 当定义行内元素为包含框时,且包含框包含的绝对定位元素以百分比为单位进行定位时,会出现混乱。

    解决方法:在行内元素里加入{zoom1}

10 当多个浮动元素中间夹杂着HTML注释语句时,如果浮动元素宽度为100%,则在下一行多显示一个上一行最后一个字符。

       解决办法:给浮动元素添加display:inline;

11 opacity 定义元素的不透明度

  filteralphaopacity=80);/*ie支持该属性*/

  opacity0.8/*支持css3的浏览器*/

12 两个块元素,竖向的margin值不增加,会重叠,其间距为最大margin值。

13 优先级:被!important 注明的css属性具有最高优先级(.abc{color:red !important;})。但在ie6!important具有一个bug:在同一组css属性中,!important不起作用。

14 火狐不识别background-position-y background-position-x;

 

---------------------------2014.01.10补充-------------------------------

15 ie6 不支持 fixed 

/*对于非IE6可以这样写*/

#top{ 

    position:fixed; 

    bottom:0; 

    right:20px

 

/*但是IE6是不支持fixed定位的,需要另外重写*/

#top{ 

    position:fixed; 

    _position:absolute; 

    top:0; 

    right:20px; 

    _bottom:auto; 

    _top:expression(eval(document.documentElement.scrollTop));

 

/*使用hack使IE6实现该效果,但这个东东会闪烁,需要以下代码*/

*html{ 

    background-image:url(about:blank); 

    background-attachment:fixed

 

/*使固定在顶部*/

#top{ 

    _position:absolute; 

    _bottom:auto; 

    _top:expression(eval(document.documentElement.scrollTop))

 

/*固定在底部*/

#top{ 

    _position:absolute; 

    _bottom:auto; 

    _top:expression(eval(document.documentElement.scrollTop+document.documentElement.clientHeight-this.offsetHeight-(parseInt(this.currentStyle.marginTop)||0)-(parseInt(this.currentStyle.marginBottom)||0)))

/*垂直居中*/

#top{

    position:fixed;

    top:50%;

    margin-top:-50px;

    _position:absolute;

    _top:expression(eval(document.documentElement.scrollTop+document.documentElement.clientHeight/2));

}

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

/* 最小宽度 */

.min_width{

    min-width:300px;

    _width:expression(parseInt(this.clientWidth)< 300 ? "300px" : this.clientWidth);

}

 

/* 最大宽度 */

.max_width{

   max-width:600px;

   _width:expression(parseInt(this.clientWidth)> 600 ? "600px" : this.clientWidth);

}

 

/* 最小高度 */

.min_height{

   min-height:200px;

   _height:expression(parseInt(this.clientHeight)< 200 ? "200px" : this.clientHeight);

}

 

/* 最大高度 */

.max_height{

   max-height:400px;

   _height:expression(parseInt(this.clientHeight)> 400 ? "400px" : this.clientHeight);

}

 

17  z-index不起作用的 bug

1ie6首先讲讲第一种z-index无论设置多高都不起作用情况。这种情况发生的条件有三个:1、父标签position属性为relative2、问题标签含有浮动(float)属性。
2
)所有浏览器:它只认第一个爸爸
层级的高低不仅要看自己,还要看自己的老爸这个后台是否够硬。用术语具体描述为:
父标签position属性为relativeabsolute时,子标签的absolute属性是相对于父标签而言的。而在IE6下,层级的表现有时候不是看子标签的z-index多高,而要看它们的父标签的z-index谁高谁低。

18  ie各个版本hack

/*类内部hack:*/

    .header {_width:100px;}           /* IE6专用*/

    .header {*+width:100px;}       /* IE7专用*/

    .header {*width:100px;}           /* IE6、IE7共用*/

    .header {width:100px\0;}       /* IE8、IE9共用*/

    .header {width:100px\9;}       /* IE6、IE7、IE8、IE9共用*/

    .header {width:330px\9\0;}    /* IE9专用*/

 

/*选择器Hack:*/

    *html .header{}        /*IE6*/

    *+html .header{}    /*IE7*/

20 IE采用最新的CSS3的炫染模式来加载

 

21 让页面宽度强制适应设备的宽,初始化的缩放比例是1

 

22 移动端屏幕旋转时文字的大小不发生改变

text-size-adjust:none;

-webkit- text-size-adjust:none;

-moz- text-size-adjust:none;

-ms- text-size-adjust:none;

-o- text-size-adjust:none;

 

你可能感兴趣的:(浏览器兼容,浏览器,bug,浏览器兼容)