首页 > 代码库 > css兼容性问题总结
css兼容性问题总结
1.先谨记以下规则,但不推荐使用hack.
所有浏览器通用(市面上主要用到的IE6IE7FF) height:100px;
IE6专用 _height:100px;
IE6专用 *height:100px;
IE7专用 *+height:100px;
IE7、FF共用 height:100px!important;
2.CSS兼容
以下两种方法几乎能解决现今所有兼容.
(1)!important(不是很推荐,用下面的一种感觉最安全)
随着IE7对!important的支持,!important方法现在只针对IE6的兼容.(注意写法.记得该声明位置需要提前.)
代码:
<style>
#wrapper{
width:100px!important; /*IE7+FF*/ 火狐 IE7浏览时是宽100px;
width:80px; /*IE6*/ IE6浏览时是宽80px;
}
</style>
(2)IE6/IE77对FireFox<from针对firefoxie6ie7的css样式>
*+html与*html是IE特有的标签,firefox暂不支持.而*+html又为IE7特有标签. *上面第一点指明
代码:
<style>
#wrapper{width:120px;}/*FireFox*/
*html#wrapper{width:80px;}/*ie6fixed*/
*+html#wrapper{width:60px;}/*ie7fixed,注意顺序*/
</style>
注意:
*+html对IE7的兼容必须保证HTML顶部有如下声明:
代码:
<!DOCTYPE HTML PUBLIC“-//W3C//DTD HTML4.01 Transitional//EN””http://www.w3.org/TR/html4/loose.dtd“>
3.其他兼容技巧(相当有用)
1,FF下给div设置padding后会导致width和height增加,但IE不会.(可用!important解决)
2,居中问题.
1).垂直居中.将line-height设置为当前div相同的高度,再通过vetical-align:middle.(注意内容不要换行.)
2).水平居中.margin:0auto;(当然不是万能) 虽然不是万能但见识有限,未能知道那个浏览器不适合此方法,知道的朋友指教!
3,若需给a标签内内容加上样式,需要设置display:block;(常见于导航标签,本人尝试过错误,padding如何设置padding-left都无效,其实原理就是使a标签像div一样以块元素定义)
4,FF和IE对BOX理解的差异导致相差2px的还有设为float的div在ie下margin加倍等问题.
5,ul标签在FF下面默认有list-style和padding.最好事先声明,以避免不必要的麻烦.(常见于导航标签和内容列表)(好的习惯是文件开头设置好)*{margin:0;padding:0;} *不提倡这样用,各个写明好点。
6,作为外部wrapper的div不要定死高度,最好还加上overflow:hidden.以达到高度自适应.(自适应高度本人习惯使用:尾部添加<div style="clear:both;">)
7,关于手形光标.cursor:pointer.而hand只适用于IE.贴上代码:
8、IE6的双倍边距BUG
<styletype=”text/css”>
body{margin:0}
div{float:left;margin-left:10px;;height:200px;border:1pxsolidred}
</style>
浮动后本来外边距10px,但IE解释为20px,解决办法是加上display:inline 这个是经典就不说了。
css兼容性问题总结