!important的意思与应用实例

IE6正常
#header .top form button{ width:54px; height:23px; background:url(../images/search.jpg) no-repeat; margin:3px 5px 0 5px; padding:0px;} 

火狐正常
#header .top form button{ width:54px; height:23px; background:url(../images/search.jpg) no-repeat; margin:3px 5px 0 0; padding:0px; float:right;} 


区别仅为:margin 与 float。 

利用!important兼容IE6与火狐以后的代码

#header .top form button{ width:54px; height:23px; background:url(../images/search.jpg) no-repeat; margin:3px 5px 0 0!important; margin:3px 5px 0 5px; padding:0px; float:right!important; float:none;}

——————————————————————————————————————————————————————

!important用一句话概括就是:提升指定样式规则的应用优先权。 

详解:
是为了兼容IE/FF

font-size: 12px !important;
font-size: 13px;
在IE里面,由于IE不理解 !important,则字体大小按照最后设定的13px展示 而FF里面, !important为提高优先级别,则字体大小按照 !important标记的12px展示 
"!important"ie6是不能识别的,而FF可以,所以用它对FF和IE6.0分别设置样式,原因是这两种浏览器中对代码的解释存在差异,因而导致有时候相同的样式却是不同的效果!

后来到了IE7"!important"又可以被识别了,所以就不能用了; 现在的做法是IE7中在样式前加"*+html",FF则直接写,FF不能识别"*+html"这个字符串,利用这点做到样式对浏览器的兼容;不过缺点是增加了样式表的长度,拖延了载入时间~
不过最好的做法还是用JS探测浏览器的版本,然后链接不同的样式表! 
首先,!important使用的主要目的是区分(IE6)和(IE7,FF),注意IE6是一类,IE7,FF这两个是一类,因为这两个对最新的css完全支持且程度类似。 
其次,IE6不解析!important(所以IE6的css最新标准支持不完全),IE7,FF解析!important(支持完善) 
再次,某些css某些代码在这两类浏览器里的显示是有差别的(注意这也是使用!important的主要原因所在),比如height: 21px;,在IE6和(IE7,FF)里显示就有差别,后者(IE7,FF)会比前者(IE6)少一个像素。 
所以,为了保持各个浏览器显示效果的一致,我们使用两句话分别针对两类浏览器, 
className{ height: 22px !important; height: 21px; }
height: 22px !important;只有IE7,FF解析
height: 21px;只有IE6解析
比且最终两类浏览器显示效果一致,如果不区别对待,单纯一句height: 21px;那么IE7,FF里显示就会少一个像素的高度。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值