DIVCSS设计时IE6、IE7、FF兼容性问题解决方案

开发 前端
本文向大家简单介绍一下DIVCSS设计时IE6、IE7、FF兼容性问题解决方法,在网站设计的时候,应该注意css样式兼容不同浏览器问题。

在网站设计的时候,应该注意css样式兼容不同浏览器问题,特别是对完全使用DIVCSS设计的网,就应该更注意IE6、IE7、FF对CSS样式的兼容。

DIVCSS设计时IE6、IE7、FF兼容性问题解决

在网站设计的时候,应该注意css样式兼容不同浏览器问题,特别是对完全使用DIVCSS设计的网,就应该更注意IE6、IE7、FF对CSS样式的兼容,不然,你的网乱可能出去不想出现的效果!

所有浏览器通用
height:100px;
IE6专用
_height:100px;
IE6专用
*height:100px;
IE7专用
*+height:100px;
IE7、FF共用
height:100px!important;

一、CSS兼容

以下两种方法几乎能解决现今所有兼容.

1,!important(不是很推荐,用下面的一种感觉最安全)

随着IE7对!important的支持,!important方法现在只针对IE6的兼容.(注意写法.记得该声明位置需要提前.)
代码:
 

  1. <style> 
  2. #wrapper{  
  3. width:100px!important;  
  4. width:80px;  
  5. }  
  6. style> 

2,IE6/IE77对FireFox

*+html与*html是IE特有的标签,firefox暂不支持.而*+html又为IE7特有标签.
代码:
 

  1. <style> 
  2. #wrapper{width:120px;}  
  3. *html#wrapper{width:80px;}  
  4. *+html#wrapper{width:60px;}  
  5. style> 

注意:
*+html对IE7的兼容必须保证HTML顶部有如下声明:
代码:
 

  1.  
  2.  "http://www.w3.org/TR/html4/loose.dtd"> 

#p#二、万能float闭合(非常重要!)

可以用这个解决多个div对齐时的间距不对,
关于clearfloat的原理可参见[HowToClearFloatsWithoutStructuralMarkup]
将以下代码加入GlobalCSS中,给需要闭合的div加上class=”clearfix”即可,屡试不爽.
代码:
 

  1. <style> 
  2. .clearfix:after{  
  3. content:".";  
  4. display:block;  
  5. height:0;  
  6. clear:both;  
  7. visibility:hidden;  
  8. }  
  9. .clearfix{  
  10. display:inline-block;  
  11. }  
  12. .clearfix{display:block;}  
  13. style> 

三、其他兼容技巧(相当有用)

1,FF下给div设置padding后会导致width和height增加,但IE不会.(可用!important解决)

2,居中问题.

1).垂直居中.将line-height设置为当前div相同的高度,再通过vetical-align:middle.(注意内容不要换行.)
2).水平居中.margin:0auto;(当然不是万能)
3,若需给a标签内内容加上样式,需要设置display:block;(常见于导航标签)
4,FF和IE对BOX理解的差异导致相差2px的还有设为float的div在ie下margin加倍等问题.
5,ul标签在FF下面默认有list-style.和padding.最好事先声明,以避免不必要的麻烦.(常见于导航标签和内容列表)
6,作为外部wrapper的div不要定死高度,最好还加上overflow:hidden.以达到高度自适应.
7,关于手形光标.cursor:pointer.而hand只适用于IE.贴上代码:

兼容代码:兼容最推荐的模式。
 

  1. .submitbutton{  
  2. float:left;  
  3. width:40px;  
  4. height:57px;  
  5. margin-top:24px;  
  6. margin-right:12px;  
  7. }  
  8. *html.submitbutton{  
  9. margin-top:21px;  
  10. }  
  11. *+html.submitbutton{  
  12. margin-top:21px;  

#p#◆浏览器兼容

什么是浏览器兼容:当我们使用不同的浏览器(FirefoxIE7IE6)访问同一个网站,或者页面的时候,会出现一些不兼容的问题,有的显示出来正常,有的显示出来不正常,我们在编写CSS的时候会很恼火,刚修复了这个浏览器的问题,结果另外一个浏览器却出了新问题。而兼容就是一种办法,能让你在一个CSS里面独立的写支持不同浏览器的样式。这下就和谐了。

最近微软发布的IE7浏览器的兼容性确实给一些网页制作人员添加了一个沉重的负担,虽然IE7已经走向标准化,但还是有许多和FF不同的地方,所以需要用到IE7的兼容,有许多朋友问过IE7的兼容是什么,其实我也不知道。暂时还没找到IE7专用的兼容。除了前面那片文章,《针对firefoxie6ie7的css样式》中的兼容方式也是很好用的。
有一点逻辑思想的人都会知道可以用IE和FF的兼容结合起来使用,下面介绍三个兼容,例如:

程序代码

第一个兼容,IEFF所有浏览器公用(其实也不算是兼容)
height:100px;

第二个兼容IE6专用
_height:100px;

第三个兼容IE6IE7公用
*height:100px;

介绍完了这三个兼容了,下面我们再来看看如何在一个样式里分别给一个属性定义IE6IE7FF专用的兼容,看下面的代码,顺序不能错哦:

程序代码
 

  1. height:100px;  
  2. *height:120px;  
  3. _height:150px; 

下面我简单解释一下各浏览器怎样理解这三个属性:

在FF下,第2、3个属性FF不认识,所以它读的是height:100px;

在IE7下,第三个属性IE7不认识,所以它读第1、2个属性,又因为第二个属性覆盖了第一个属性,所以IE7最终读出的是第2个属性*height:120px;

在IE6下,三个属性IE6都认识,所以三个属性都可以读取,又因为第三个属性覆盖掉前2个属性,所以IE6最终读取的是第三个属性。

【编辑推荐】

  1. 热点透视 DIV CSS完美兼容IE6 IE7 FF的通用方法
  2. 探究IE8与IE7具体功能中窗口功能按钮的变化
  3. IE6 IE7 IE8三个版本的CSS兼容速查手册
  4. 探秘IE8 JavaScript功能超乎想象
  5. 技术前沿 一段JS代码轻松解决IE6-IE8的兼容性问题

 

责任编辑:佚名 来源: sevem.cn
相关推荐

2010-09-15 11:32:37

IE6IE7浏览器兼容性

2010-08-19 16:06:15

2010-08-18 09:01:47

IE5IE5.5IE6

2010-08-20 11:01:10

IE7IE8CSS

2010-08-17 16:18:23

IE6IE7FF

2010-09-15 10:14:19

IE7IE8兼容CSS

2010-08-27 13:31:58

IE6IE7Firefox

2010-08-30 09:35:35

IE6IE7Firefox

2010-09-15 08:41:25

IE6IE7Firefox兼容

2010-08-18 09:24:09

IE6兼容性

2010-09-15 14:14:29

IE6position

2010-08-19 10:13:25

marginFFIE6

2010-08-20 09:33:22

IE6IE7IE8

2011-06-03 15:41:27

CSS HACK

2010-08-17 15:33:28

CSS兼容IE7IE8

2010-08-27 15:08:10

FirefoxIE6IE7

2010-09-15 11:18:27

IE6IE7火狐

2010-09-15 10:25:18

IE7IE8CSS兼容性

2010-09-09 15:44:21

IEFFCSS

2010-08-18 13:54:35

IE6IE7Firefox兼容
点赞
收藏

51CTO技术栈公众号