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

CSS样式表
CSS的margin边界叠加深度剖析图文演示
CSS中Float(浮动)相关技巧文章
惊现学习CSS应该注意的方法
使用text-align:justify实现两端对齐一例
CSS整体布局声明的一些使用技巧
推荐深入理解css中的position定位和z-index属性
固定表格的高度超过指定高度就隐藏的方法
推荐个Css的filter常用滤波器属性及语句大全
用css滤镜实现的文字描边效果的代码
用css实现的带阴影的表格效果的代码
推荐个不错的表单Input的高级用法11例
flash幻灯片需要先激活ActiveX控件才能使用的又一个办法
DIV+CSS作网页容易犯的错误小结
ul+li及css制作韩国风格菜单代码
div布局的自由伸展三栏式版面的代码
几乎被设计师遗忘了的标签fieldset legend
不用javascript实现带序号的表格隔行换色的效果
用CSS实现基本条状图表效果
用javascript来控制 链接的target 属性的代码
多浏览器css兼容分析小结

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


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-09-12   浏览: 69 ::
收藏到网摘: 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或者说少使用,因为好的布局结构是可以很好解决这些问题,这样的网站也大有人在。