Board logo

标题: css中important的应用 [打印本页]

作者: fangzhen    时间: 2009-2-16 09:17     标题: css中important的应用

在IE中对盒模型(box-model)的解释是有BUG的,IE6.0之前的版本会把某元素的边框值和填充值包含在宽度之内(而不是加在宽度值上)。例如,你可能会使用以下css来指定某个容器的尺寸:
  #box
  {
   width:100px;
   border:5px;
   padding:20px;
  }
  然后在html中应用:...

  盒的总宽度在几乎所有浏览器中为150像素(100像素宽度+两条5像素的边框+两个20像素的填充),唯独在IE6之前版本的浏览器中仍然为100像素(边框值和填充值包含在宽度值中),使用盒模型的hack可以解决这一问题,
  #box
  {
   width:150px;        //这个是错误的width,所有浏览器都读到了
   voice-family: \}\;      //IE5.X/win忽略了\}\后的内容
   voice-family:inherit;
   width:100px;        //包括IE6/win在内的部分浏览器读到这句,新的数值(300px)覆盖掉了旧的
  }
  还有更简单的办法如下:
  CSS:
  #box { width:150px; }
  #box div { border:5px; padding:20px; }
  HTML:
  
...

  这样一来在任何浏览器中盒的总宽度都将是150像素。
  但是即使是到了最新的IE6.0依然存在浮动模型(Float-model)的问题,值得庆幸(还是悲哀?)的是我们可以用IE中一直都不支持的!important来解决这个问题。
  !important是CSS1就定义的语法,作用是提高指定样式规则的应用优先权(参见:W3.org的解释)。语法格式{ sRule!important },即写在定义的最后面,例如:box{color:red !important;}
  假如我们定义一个这样的样式:
     #box{background-color: #ffffff !important; background-color: #000000;}
  那么在支持该语法的浏览器,如Firefox、Opera中,能够理解!important的优先级,背景显示#ffffff颜色,而在IE中则显示#000000
作者: 尉迟浜虎    时间: 2009-3-19 16:56     标题: 支持咯

提示: 作者被禁止或删除 内容自动屏蔽
作者: nopq596    时间: 2009-3-19 22:56     标题: .

提示: 作者被禁止或删除 内容自动屏蔽




欢迎光临 PHP开发笔记 (http://phpvi.com/) Powered by Discuz! 6.1.0