firefox和IE中css的区别
firefox和IE中css的区别用法: 
1-1 
首先,当然是!important大法,可以提升指定样式规则的应用优先权,如下面的例子: 
插入代码: 
div{ 
background-color: red !important; 
background-color: blue; 
} 
因为!important声明在IE6中并不是绝对的,它会被之后的同名属性定义所替换。也就是说在上面的例子中,IE6所应用的是最后一个背景色的值,即“blue”;而在FF中背景色的值为“red”。 
还有一种方法,就是IE浏览器可以识别“>”等一些符号,如“~”、“`”、“ 
插入代码: 
div{ 
background-color: red; 
>background-color: blue; 
} 
在FF中得到的是背景色红色,而在IE中得到的背景色是蓝色,根据样式重定义的规则,如果浏览器可以识别“>”,则应该得到的蓝色的背景,因此可以知道“>”只有IE可以识别。 
这样,我们就可以把FF和IE的样式分离开。下面就是解决IE自己的问题了。 
看一个例子: 
插入代码: 
div{ 
>background-color: black; 
>background-color /*IE5.5*/: green; 
} 
这个例子使用了“>”,只有IE可以识别,在IE6中得到了黑色的背景;而在IE5.5中得到的绿色的背景;在IE5中也得到了黑色的背景。这就说明了第二句定义只有IE5.5能识别,这是个很早就公布的HACK,可以在网上找到相关的资料,要注意的就是在属性名之后是有一个空格的。 
到此我们已经把FF、IE5.5、IE6分离出来了,那IE5呢?其实现在我们只要把IE5跟IE6分开就OK了。 
插入代码: 
div{ 
>background-color: red; 
} 
div/*IE5.5+*/{ 
>background-color: black; 
} 
这里我们又用到一个HACK,就是“div/**/{}”,这个定义在IE5以上的版本才能识别出来。这个例子得到的结果是,在IE5中的背景色为红色;在IE5以上版本中得到的是黑色背景。 
这样我们就可以为不同的浏览器定义不同的样式了。来看个完整的例子: 
插入代码: 
div{ 
width: 500px; 
height: 50px; 
background-color: red !important;/*FF*/ 
background-color: blue;/*IE5*/ 
text-align:center; 
} 
div/*IE5.5+*/{ 
>/*IEonly*/background-color: black;/*IE6*/ 
>/*IEonly*/background-color /*IE5.5*/: green; 
} 
需要注意的是,在上面例子中“background-color”定义的顺利不能改变,即FF-IE5-IE6-IE5.5。对于IE的定义在属性前要加“>”,因为“div/**/{}”这个HACK在FF中可以识别。 
#hackme{ 
/*style for all browser here*/ 
} 
* html #hackme{ 
/*style for ie here*/ 
} 
height:20px; /*For Firefox*/ 
*height:25px; /*For IE7 & IE6*/ 
_height:20px; /*For IE6*/ 
IE7   修复了很多 bug,也增加了对一些选择符的支持,所以现在诸如 *html {} 和 html>body {} 等针对 IE 隐藏或显示的   hack 都会在 IE7 中失效。虽然 CSS Hack 不推荐使用,条件注释才是万无一失的过滤器,但是条件注释只能出现在 HTML 中, CSS Hack 还是有用武之地的。Nanobot 发现了一些针对 IE7 的 CSS Hack,具体就是: 
>body 
html* 
*+html 
这三种写法,其中前两种都是不合法的 CSS 写法,在标准兼容浏览器中被被忽略,但是 IE7 却不这么认为。 
二、 
第一种,是CSS HACK的方法: 
height:20px; /*For Firefox*/ 
*height:25px; /*For IE7 & IE6*/ 
_height:20px; /*For IE6*/ 
注意顺序。 
这样也属于CSS HACK,不过没有上面这样简洁。 
#example { color: #333; } /* Moz */ 
* html #example { color: #666; } /* IE6 */ 
*+html #example { color: #999; } /* IE7 */ 
第二种是使用IE专用的条件注释 
<!-- 其他浏览器 --> 
<link rel="stylesheet" type="text/css" href="css.css" /> 
<!--[if IE 7]> 
<!-- 适合于IE7 --> 
<link rel="stylesheet" type="text/css" href="ie7.css" /> 
< ![endif]--> 
<!--[if lte IE 6]> 
<!-- 适合于IE6及一下 --> 
<link rel="stylesheet" type="text/css" href="ie.css" /> 
< ![endif]--> 
第三种css filter的办法,以下为经典从国外网站翻译过来的 
新建一个css样式如下: 
#item { 
width: 200px; 
height: 200px; 
background: red; 
} 
新建一个div,并使用前面定义的css的样式: 
<div id="item">some text here</div> 
在body表现这里加入lang属性,中文为zh: 
<body lang="en"> 
现在对div元素再定义一个样式: 
*:lang(en) #item{ 
background:green !important; 
} 
这样做是为了用!important覆盖原来的css样式,由于:lang选择器ie7.0并不支持,所以对这句话不会有任何作用,于是也达到了ie6.0下同样的效果,但是很不幸地的是,safari同样不支持此属性,所以需要加入以下css样式: 
#item:empty { 
background: green !important 
} 
:empty选择器为css3的规范,尽管safari并不支持此规范,但是还是会选择此元素,不管是否此元素存在,现在绿色会现在在除ie各版本以外的浏览器上。 
对IE6和FF的兼容可以考虑以前的!important</body>
相关文章
通过CSS截取文字长度2023-01-02
display:inline-block 水平居中无效的解决办法2019-03-07
CSS中font-family:中文字体的英文名称 2018-11-06
css3 nth-child选择器2018-11-04
CSS3 transform多种组合2018-10-26
scrollbar CSS美化(仿Safari样式)2013-10-28
CSS样式在IE6中失效的解决方案2013-05-06
Firefox及Chrome中div不撑高的解决办法2013-04-30
chrome margin失效的解决办法2013-04-19
使用css调整文字间距2013-04-10