手机
当前位置:查字典教程网 >网页设计 > Div+Css教程 >!important在ie7.0的hack方法
!important在ie7.0的hack方法
摘要:由于ie对!important识别存在bug,而现在大部分网页标准设计师又通过这个bug来兼容ie和ff,但是ie7.0把这个bug给修复了...

由于ie对!important识别存在bug,而现在大部分网页标准设计师又通过这个bug来兼容ie和ff,但是ie7.0把这个bug给修复了,所以问题又出现了,怎么兼容ie.7.0的同时又能兼容ie6.0和ff?正所谓"上有政策,下有对策",国外的网页标准设计师通过使用cssfilter的办法(并不是csshack)来兼容ie7.0,ie6.0和ff,以下为我从国外网站的翻译.

新建一个css样式如下:

#item{

width:200px;

height:200px;

background:red;

}

新建一个div,并使用前面定义的css的样式:

<divid="item">sometexthere</div>

在body表现这里加入lang属性,中文为zh:

<bodylang="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各版本以外的浏览器上,并在以下浏览器和操作系统下通过测试:

ie7beta2preview/win

ie5.01+/win

firefox1.5/win

opera8.5/win&linux

netscape7.01,8/win

mozilla1.7.12/win&linux

safari2/mac

firefox1.0.4/linux

epiphany1.4.8/linux

galeon1.3.20/linux

按照远作者的说法其实这不能算是一种hack,应该属于filter,不过这似乎并不是最重要的,因为通过这个办法,我们又一次了解决IE6.0,IE7.0和其他浏览器之间的兼容性问题,而且使用:lang-filter这办法,在今后的一段时间内都会有用。

【!important在ie7.0的hack方法】相关文章:

CSS div居中的三种方法

让div旋转一定的角度方法

CSS小技巧:隐藏input 内的文字的方法

CSS文字竖排方法

CSS兼容IE6、IE7、IE8和Firefox浏览器的方法

清除浮动的空DIV方法

JS控制css float属性的用法

使用css的background:url设置背景图方法

CSS隐藏文字的方法

IE6 innerHTML写入的iframe src不显示BUG的解决方法

精品推荐
分类导航