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

CSS样式表
CSS实例教程;IE6下CSS定义DIV高度的问题
CSS制作网页实例:DIV仿框架结构
CSS样式表与HTML网页的关系
CSS样式表空格与不空格的关系
规范HTML代码可以节省修改代码的时间
还原设计稿进行页面制作的流程和注意事项
CSS压缩大法:技巧与工具
CSS的@font-face属性实现在网页中嵌入任意字体
CSS网页制作实例:制作有弹性的日历表
快速开发HTML和CSS的方法:Zen Coding
Webjx推荐5个改善CSS编码的幻灯片教程
ins标签适当时候使用
ins标签和del标签的属性和用法
网页制作有用资料:网页常用英文字体
ID类和class类的长命名与短命名
CSS实例教程:background-position的说明
div和span、relative和absolute、display和visibility
CSS实例教程:图片宽高自适应固定边框
网页制作教程:默认Web字体样式
实用的CSS网页布局25个小技巧

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


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