去除/重置CSS行为属性

33

通过更具体的规则或使用!important declaration是否可能删除IE特有的behavior CSS属性?示例:

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

我意识到覆盖CSS属性是不可取的,但我被卡住了。

编辑:我不确定人们在这个问题上为什么会感到困惑。就所有目的而言,你可以把它视为已经是一个 IE 特定的样式表。我的问题是,如果存在不可变的 .a-rule,如何通过更具体的规则来删除它的行为?一个标准的 CSS 等效内容如下:

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

通过更具体的规则,可以重置一组元素的边框属性。我想知道如何以类似的方式重置behavior属性。


将此标记为重复项毫无意义。它早于其他问题,有更多的细节和更多的人参与。 - Jeremy Kauffman
3个回答

42

3
我发现一个空字符串也可以工作(至少在IE8中),但似乎默认值实际上是none,请看这里:https://dev59.com/nWsz5IYBdhLWcg3wWmfL。很抱歉您得到的答案如此糟糕。 - Wesley Murch
不错的解决方案,但似乎对颜色无效,有人针对这种情况有什么解决方案吗? - Mike H-R
“无色”并不是一个确切的颜色。它可能是黑色、白色或透明色吗? - kand
如果您正在尝试更改背景颜色,那么它是“透明的”。 - pherris

-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文件


-8

或许可以在头部使用条件标签来针对IE进行设置

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

8
样式表中不存在这样的语法。 - bobince

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接