当前位置: 首页 > 图文教程 > 网页制作 > CSS样式表 > 浏览器兼容解决FF/IE6/IE7背景专用CSS HACK

CSS样式表
做网页中需要掌握的八个CSS布局技巧
CSS属性 - white-space 空白属性使用说明
用CSS构建iframe效果代码
用div+css解决出现水平滚动条问题
ul在Firefox和IE下的不同表现的解决方法
用css实现隐藏文本框
css实现行间距效果
研究了一下div+css的高度自适应问题
做网页字体大小参考 网页中同字号字体的不同单位对比列表
css 之 background-position-x
css实现兼容各个浏览器的技巧的代码
css中的行间距的代码
HTML:scrollLeft,scrollWidth,clientWidth,offsetWidth完全详解
scrollWidth,clientWidth与offsetWidth的区别
大家需要掌握的 html下SPAN和DIV的区别
布局用CSS+DIV的优点总结
纯CSS生成抗锯齿圆角的代码
IE6,IE7和firefox对DIV的支持区别
DIV+CSS布局的网站对网站SEO的影响分析
非常不错的关于IE与FireFox的js和css几处不同点[转自星火燎原]

CSS样式表 中的 浏览器兼容解决FF/IE6/IE7背景专用CSS HACK


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-09-12   浏览: 72 ::
收藏到网摘: n/a

自从互联网开始的那一刻起,各浏览器间的争斗就没有停止过。当然其中最苦的就是网页制作人员了,为了达到用户体验以及可用性的标准,不得不在多个浏览器上为统一效果而奔波。真希望哪一天FF可以一统天下,虽然现在还是IE的大天下。特别是微软最新发布的IE7浏览器,其CSS的兼容性确实给一些网页制作人员又添加了一个沉重的新负担。
为了让各浏览器有同样的显示效果,我们不得不用到CSS HACK。当然在这篇文章中我们只谈现在使用率最高的IE6和FF,以及将来可能会成为主流的IE7的CSS HACK,至于IE6以下版本已OP、SF在这此先不详细说明。新手看了这片文章一定会有所收获,而高手们路过一下就可以了,呵呵!
方案一
先来看看下面的CSS代码:
background-color:orange;
*background-color:blue!important;
*background-color:red;
点击运行可以看到效果:
[Ctrl+A 全选 提示:你可先修改部分代码,再按运行]

下面我简单解释一下各浏览器怎样理解这三个属性:
在FF下,第2、3个属性不认识,其中第2个属性如果只是加了!important的话FF一定认识的,但因为前面又加了个*,所以不认识了(仅IE7认识)。所以它读的是background-color:orange;
在IE7下,第1、2、3个属性IE7虽然都认识,但!important表示的是优先,所以它读的是*background-color:blue!important;
在IE6下,第2个属性不认识,第1、3个属性都认识,但因为第3个属性覆盖掉第1个属性,所以IE6最终读取的*background-color:red。
方案二
先来看看下面的CSS代码:
复制代码 代码如下:

background-color:orange;
*background-color:blue;
_background-color:red;

点击运行可以看到效果:
[Ctrl+A 全选 提示:你可先修改部分代码,再按运行]

下面我简单解释一下各浏览器怎样理解这三个属性:
在FF下,第2、3个属性FF不认识,所以它读的是background-color:orange;
在IE7下,第3个属性IE7不认识,所以它读第1、2个属性,又因为第2个属性覆盖了第1个属性,所以IE7最终读出的是第2个属性*background-color:blue;
在IE6下,这3个属性IE6都认识,所以3个属性都可以读取,又因为第3个属性覆盖掉前2个属性,所以IE6最终读取的是_background-color:red。
其中IE的读取属性一定要知道,这对初学者而言使用CSS HACK是非常至关重要的,浏览器读取属性是从上至下的,也就是说同样属性的设置最后一个读取到的才是在浏览器上显示的。此外在方案二种的“_”这是只有IE6才认识的,可见其大胃王的感觉。另外!important不同,它打破了从上至下的读取习惯,使用的是优先显示。而在上述两个方案中可以看出FF除了正规CSS书写和!important外其它都不认识,标准就是统一的。
在这里并不是怂恿大家鼓励使用CSS HACK,只是别看到其他人写的CSS代码中有这些HACK不知道是什么意思。毕竟用CSS HACK来解决浏览器间的兼容并不是长远方法,如果新版本浏览器的出现说不定会把你原来写的CSS HACK怎样,IE7就是个很好的例子。尽量达到零使用CSS HACK或者说少使用,因为好的布局结构是可以很好解决这些问题,这样的网站也大有人在。