全面兼容IE6/IE7/IE8/FF的CSS HACK写法

开发 前端
由于不同的浏览器对CSS的支持及解析结果不一样,还由于CSS中的优先级的关系。我们就可以根据这个来针对不同的浏览器来写不同的CSS。 本文介绍了全面兼容IE6/IE7/IE8/FF的CSS HACK写法,一起来看吧!!

CSS hack由于不同的浏览器,对CSS的解析认识不一样,因此会导致生成的页面效果不一样,得不到我们所需要的页面效果。 这个时候我们就需要针对不同的浏览器去写不同的CSS,让它能够同时兼容不同的浏览器,能在不同的浏览器中也能得到我们想要的页面效果.

浏览器市场的混乱,给设计师造成很大的麻烦,设计的页面兼容完这个浏览器还得兼容那个浏览器,本来ie6跟ff之间的兼容是很容易解决的。加上个ie7会麻烦点,ie8的出现就更头疼了,原来hack ie7的方法又不能用了,怎么办呢?

第一种方法:

还好,微软提供了这样一个代码:

 

<meta http-equiv="x-ua-compatible" content="ie=7" /> 
  • 1.

把这段代码放到<head>里面,在ie8里面的页面解析起来就跟ie7一模一样的了,所以,基本上可以无视ie8,剩下的代码只需要这样写就可以了

background:#ffc/* 对firefox有效*/ 
*background:#ccc/* 对ie7有效 */ 
_background:#000/* 只对ie6有效 */ 
  • 1.
  • 2.
  • 3.

解释一下吧:

firefox能解析第一段,后面的两个因为前面加了特殊符号“*”和“_”,firefox认不了,所以只认background:#ffc,看到的是黄色;

ie7前两短都能认,以最后的为准,所以最后解析是background:#ccc,看到的是灰色;

ie6三段都能认,而且“_”这个只有ie6能认,所以最后解析是_background:#000,看到的是黑色

阿门!已经是最简单和最好理解的写法了,如果你是google进来的,我可以很负责任的告诉你,这种方法是ok的,我测试过。

ie8的那段兼容7的代码我也测试过了,在我现在的windos 7 测试版所带的ie8是没问题的,以后ie8正式版出来还管不管用就不知道了。

ps:如果你发现按我这样写还是有问题的话,请查看一下你的html头,看看<head>之前的内容是不是这样的标准写法

 

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">  
<html xmlns="http://www.w3.org/1999/xhtml"
  • 1.
  • 2.
  • 3.

 

这个是现在比较规范的写法,如果你是用dreamweaver做页面的话,默认也是这种规范的,切记,非这种规范写法的,兼容性不能保证

第二种方法:

要求苛刻的朋友是不愿意在页面头部增加

<meta http-equiv="x-ua-compatible" content="ie=7" /> 
  • 1.

 

这样一句代码的,因为这样的结果是每个页面都得加。那么要想兼容这几个浏览器还真得想别的办法了。

还有一篇文章《完美兼容ie6,ie7,ie8以及firefox的css透明滤镜》,可能当时测试的疏忽,IE8的兼容性没有解决好,好多朋友回复说用不了。今天抽出些时间,查阅大量资料,终于解决了这个问题了。

以下是兼容IE6/IE7/IE8/FF的写法,注意下面的顺序不可颠倒

 

margin-bottom:40px/*ff的属性*/ 
margin-bottom:140px\9/* IE6/7/8的属性 */ 
color:red\0/* IE8支持 */ 
*margin-bottom:450px/*IE6/7的属性*/ 
  • 1.
  • 2.
  • 3.
  • 4.

下面以一个实例的形式表现,大家可以运行代码查看一下效果:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">  
<html xmlns="http://www.w3.org/1999/xhtml">  
<head>  
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />  
<title>2010最新全面兼容ie6,ie7,ie8,ff的CSS HACK写法——www.aa25.cn标准之路</title>  
<style type="text/css">  
#abc {  
border:2px solid #00f/*ff的属性*/ 
border:2px solid #090\9; /* IE6/7/8的属性 */ 
border:2px solid #F90\0; /* IE8支持 */ 
_border:2px solid #f00/*IE6的属性*/ 
}  
/*上下顺序不可以写错*/ 
</style>  
</head>  
<body>  
<div id="abc">  
<ul>  
<li>FF下蓝边</li>  
<li>IE6下红边</li>  
<li>IE7下绿边</li>  
<li>IE8下黄边</li>  
<li>转载请注明来源标准之路<a href="http://www.68css.com">www.68css.com</a></li>  
</ul>  
</div>  
</body>  
</html>  
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
  • 22.
  • 23.
  • 24.
  • 25.
  • 26.
  • 27.

【编辑推荐】

  1. DIV+CSS的好处和意义
  2. CSS Hack技术语法宝典
  3. div+css牛人也得看的15个css
  4. 建议大家用的css命名规则
  5. CSS简写指南
责任编辑:于铁 来源: 标准之路
相关推荐

2010-09-16 13:17:31

IE6IE7IE8

2010-08-18 15:57:14

IE6IE7IE8

2010-09-16 13:33:47

IE6IE7IE8

2010-08-18 10:24:51

IE6IE7IE8

2010-08-20 08:45:55

IE6IE7IE8

2010-08-17 16:27:52

IE6IE7IE8

2010-08-18 10:37:16

IE6IE7IE8

2010-09-15 11:08:48

CSSIE6IE7

2010-08-20 13:15:54

IE6IE7IE8

2009-08-13 10:12:07

IE的CSS Bug

2010-08-20 09:33:22

IE6IE7IE8

2010-08-18 14:32:07

IE6IE7IE8

2010-08-17 16:18:23

IE6IE7FF

2010-09-08 16:59:48

CSS兼容IE7IE8

2010-09-06 15:06:29

IE6IE7Firefox

2010-08-20 09:25:11

IE6IE7IE8

2010-08-17 15:07:48

IE6IE7IE8

2010-08-19 10:56:55

JSIE6IE7

2010-08-19 09:24:20

CSS兼容IE7IE8

2010-08-20 13:08:41

IE6IE7IE8
点赞
收藏

51CTO技术栈公众号