常见浏览器的兼容问题
<td class="ln"><pre class="de1">1 | }
? ? ? ? ? b 父标签添加{overflow:hidden;}
? ? ? ? ? c 给父标签设置高度
5 Ie6下,不识别最大宽、高度和最小宽高度,意即min-width/height和 Max-width/height在ie6中没效果,
? ? ? ? 解决方法:(1):.abc{border:1px blue solid;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 当定义行内元素为包含框时,且包含框包含的绝对定位元素以百分比为单位进行定位时,会出现混乱。
? ? ? ? 解决方法:在行内元素里加入{zoom:1;}
10 当多个浮动元素中间夹杂着HTML注释语句时,如果浮动元素宽度为100%,则在下一行多显示一个上一行最后一个字符。
? ? ? ? 解决办法:给浮动元素添加display:inline;。
11 opacity 定义元素的不透明度
? ?filter:alpha(opacity=80);/*ie支持该属性*/
? ?opacity:0.8;/*支持css3的浏览器*/
12 两个块元素,竖向的margin值不增加,会重叠,其间距为最大margin值。
13 优先级:被!important 注明的css属性具有最高优先级(.abc{color:red !important;})。但在ie6中!important具有一个bug:在同一组css属性中,!important不起作用。
14 火狐不识别background-position-y 或background-position-x;
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
? ? ? ? 1)ie6下 首先讲讲第一种z-index无论设置多高都不起作用情况。这种情况发生的条件有三个:1、父标签position属性为relative;2、问题标签含有浮动(float)属性。
? ? ? ? 2)所有浏览器:它只认第一个爸爸
? ? ? ? ? ? ? ? 层级的高低不仅要看自己,还要看自己的老爸这个后台是否够硬。用术语具体描述为:
? ? ? ? ? ? ? ? 父标签position属性为relative或absolute时,子标签的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 ;} ? ? ? ?/* IE8、IE9共用*/
? ? .header {width:100px9;} ? ? ? ?/* IE6、IE7、IE8、IE9共用*/
? ? .header {width:330px9 ;} ? ?/* IE9专用*/
?
/*选择器Hack:*/
? ? *html .header{} ? ? ? ?/*IE6*/
? ? *+html .header{} ? ?/*IE7*/
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!