Ragnafox - 未济

Fragments of Xoanon

« 白糖饼和红烧肉无聊无题无意义图一张 »

以弱克弱,以毒攻毒——解决IE和其它浏览器代码效果不统一的问题

别不多述,众所周知,当一个DIV使用padding时,padding值将占用总值
也就是说
实际值=总值-padding值
其它浏览器都会自动进行加算,在页面中显示为实际值+padding值,但IE不会
在这个多种浏览器并用的年代...解析方法不统一还真是麻烦透了...

示例代码如下:

#cal_body {
 color:#CF3648;
 width:180px;          <-需要宽度是230,padding设定为25px,所以减去左右共50px
 height:160px;
 margin:0;
 padding:25px;
 float:left;
}

这张是我计划做的效果,也是非IE浏览器显示的效果

这张是IE的效果

以上情况的原因是,IE不能解释 230-50=180 这一步,所以这DIV就少了50象素 -_______-|||

正确的写法如下,利用!important来统一IE和其它浏览器的效果:

#cal_body {
 width:180px !important;      <-正确的数值,给其它浏览器解析
 width:230px;                         <-没有减去padding的数值,留给IE解析
 height:160px;
 margin:0;
 padding:25px;
 float:left;
}

!important是css1的语法,作用是提高指定样式规则的应用优先权,语法格式{ sRule!important },写在定义的最后面.
当其它浏览器对这段代码进行解释的时候,因为width=180有较高的优先级,所以大家领了这个数值心安理得的做其它事情去了,对紧接着重复定义的width不加理会;
但IE不一样,因为后面加了!important,IE根本不知道这是啥玩意儿...so...忽略!嗯,接下来解释width=230,刚好..也很开心的玩别的去了..所以说傻人傻福嘛,IE还真是无忧无虑啊,看不懂当你没写 -_-||
不过也多亏如此,用IE不认识!important的弱点解决了IE不会算padding的弱点,何乐而不为呢..

以上

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

日历

最新评论及回复

最近发表

Powered By Z-Blog 1.8 Arwen Build 81206 Code detection by Codefense

Copyright Ragnafox - 5tails . Some Rights Reserved.