be important to 和be important for的用法区别

1个回答

  • css hack不知你听说过吗?

    !important是一个css hack.

    !important只有Ie7.0和firefox可以识别,但是Ie6.0不能够成功应用.

    none!important就是让Ie7.0和firefox识别没有背景(background)或者不显示(display).

    important这个规则对Ie6.0,Ie7.0和Firefox能写hack,现在就来讲解这是怎么的原理:

    *Ie系列能够识别,firefox 不能识别

    !important只有Ie7.0和firefox可以识别,但是Ie6.0不能够成功应用.

    (1)区别ie与firefox的hack为:border:2px solid #f00;*border:1px solid #f00;

    (2)区别Ie6.0 与Ie7.0、firefox的hack为:border:1px solid #f00!important;border:2px solid #f00;

    在(1)中,之所以把*放在后面是因为ff不识别*而导致只对它设置了一次border;而ie 系列进行了两次

    border设置后,后一个属性覆盖了前一个属性,故为一像素的边框.

    在(2)中,之所以把!important放在第一个border 设置,是因为它把这次border的优先级提高了,即使

    后面在一次甚至在N次设置border 也无效,但是Ie6.0对这个规则不接受,而导致它应用了第二次的

    border 设置,也就是第二次覆盖了第一次的这一原理,并不是它不识别!important;所以它的border

    为2 像素的红框.

    这是一个简单的应用:

    无标题文档

    div{

    width:800px;

    height:250px;

    background-color:yellow!important;/*提升指定样式规则的应用优先权*/

    background-color:red;

    border:3px solid #000!important;/*firefox*/

    *border:5px solid #f00!important;/*Ie7.0*/

    border:1px solid #000;/*Ie6.0*/

    }

    IE6.0对important不识别;