常见IE和火狐的CSS兼容性问题

这里向大家介绍一下IE和火狐的CSS兼容性问题解决方法,在区别火狐和IE时最常用的是!important方法,对于区分其他不同浏览器和浏览器的不同版本的兼容性问题还有下面一些方法,比如:@import,注释,属性选择符,子对象选择符和voice-family等方法,这些方法在《CSS网站布局实录》中有讲述。

下面是IE和火狐的CSS兼容性问题

1.DOCTYPE影响CSS处理

2.FF(火狐):DIV设置margin-left,margin-right为auto时已经居中,IE不行

3.FF(火狐):body设置text-align时,DIV需要设置margin:auto(主要是margin-left,margin-right)方可居中

4.FF(火狐):设置padding后,DIV会增加height和width,但IE不会,故需要用!important多设一个height和width

5.FF(火狐):支持!important,IE则忽略,可用!important为FF(火狐)特别设置样式,值得注意的是,一定要将xxxx!important这句放置在另一句之上

6.DIV的垂直居中问题:vertical-align:middle;将行距增加到和整个DIV一样高line-height:200px;然后插入文字,就垂直居中了。缺点是要控制内容不要换行

7.cursor:pointer可以同时在IEFF(火狐)中显示游标手指状,hand仅IE可以

8.FF(火狐):链接加边框和背景色,需设置display:block,同时设置float:left保证不换行。参照menubar,给a和menubar设置高度是为了避免底边显示错位,若不设height,可以在menubar中插入一个空格。

9.在mozillafirefox和IE中的BOX模型解释不一致导致相差2px解决方法:

 
 
 
  1. DIV{margin:30px!important;margin:28px;}  
  2.  

注意这两个margin的顺序一定不能写反,据阿捷的说法!important这个属性IE不能识别,但别的浏览器可以识别。所以在IE下其实解释成这样:

 
 
 
  1. DIV{maring:30px;margin:28px}  
  2.  

重复定义的话按照***一个来执行,所以不可以只写margin:XXpx!important;

10.IE5和IE6的BOX解释不一致

IE5下

 
 
 
  1. DIV{width:300px;margin:010px010px;}  
  2.  

DIV的宽度会被解释为300px-10px(右填充)-10px(左填充)最终DIV的宽度为280px,而在IE6和其他浏览器上宽度则是以300px+10px(右填充)+10px(左填充)=320px来计算的。这时我们可以做如下修改

 
 
 
  1. DIV{width:300px!important;width/**/:340px;margin:010px010px}  
  2.  

11.ul标签在Mozilla中默认是有padding值的,而在IE中只有margin有值所以先定义ul{margin:0;padding:0;}就能解决大部分问题

【编辑推荐】

  1. JavaScript巧解IE6至IE8兼容问题
  2. 解决IE7和IE8兼容性问题
  3. 网页排版中IE6,IE7,Firefox浏览器兼容性写法
  4. ***实现IE6/IE7/FF浏览器兼容通用方法
  5. Firefox、IE7、IE6浏览器兼容问题概念解析
THE END