2010-12-22 119 views
32

是否可以通过更具体的规则或!important声明删除特定于IE的行为CSS属性?例如:删除/重置CSS行为属性

.a-rule 
{ 
    behavior: url(/some.htc); 
} 
.a-rule.more-specific 
{ 
    behavior: /*no HTC*/ 
} 

我意识到覆盖CSS属性是不可取的,但我卡在这里。

On编辑:我不确定人们对这个问题感到困惑。出于所有目的,你可以认为这已经是IE特定的样式表。我在问,如果.a-rule存在并且是不可变的,那么如何通过更具体的规则去除行为?标准的CSS等价物将是:

.a-rule 
{ 
    border: 1px solid black; 
} 
.a-rule.more-specific 
{ 
    border: 0 none; 
} 

可以通过更具体的规则重置元素子集的border属性。我在问如何以类似的方式重置行为属性。

+0

没有意义,以纪念其视为重复。它会在另一个问题的日期之前,有更多的细节,涉及更多的人。 – 2014-10-16 04:01:27

回答

40

的默认值是 “无”。请参阅:

What is the *correct* way to unset the behavior property in CSS?

解决办法:

.a-rule 
{ 
    behavior: url(/some.htc); 
} 
.a-rule.more-specific 
{ 
    behavior: none; 
} 
+3

我发现一个空字符串也起作用(至少在IE8中),但它看起来像默认值实际上是`none`,请看这里:http://stackoverflow.com/questions/7953447/what-is-the-正确的方式,以unset行为属性在CSS我很抱歉,你得到的答案是如此糟糕。 – 2011-10-31 21:13:49

-8

也许使用IE条件标签在你的头上

<!--[if IE]> 
<style type="text/css"> 
    .a-rule { 
     behavior: url(/some.htc); 
    } 
</style> 
<![endif]--> 
+8

样式表中没有这样的语法。 – bobince 2010-12-22 21:32:29

-5
.a_rule { 
    border: 1px solid black; /* we know border is black */ 
    behavior: url(/some.htc) /* we know something happen inside some.htc */ 
} 
.a_rule.more-specific { 
    border: 0 none; /* we remove the border */ 
    behavior: url(/some.htc) /* we remove something inside some.htc */ 
} 

使用不同.htc文件