【问题标题】:Remove/reset CSS behavior property删除/重置 CSS 行为属性
【发布时间】:2014-10-16 12:31:17
【问题描述】:

是否可以通过更具体的规则或!important 声明来删除 IE 特定的行为 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;
}

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

【问题讨论】:

  • 将其标记为重复是没有意义的。它早于另一个问题,有更多的细节和更多的人参与。

标签: css internet-explorer behavior html-components


【解决方案1】:

默认值为“无”。见:

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

解决办法:

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

【讨论】:

  • 我发现一个空字符串也能正常工作(至少在 IE8 中),但看起来默认值实际上是 none,请参见此处:stackoverflow.com/questions/7953447/… 很抱歉您得到的答案太糟糕了。
  • 不错的解决方案,但似乎不适用于颜色,有没有人有针对该用例的解决方案?
  • “无”颜色没有任何意义。会不会很黑?白色的?透明?
  • 如果您尝试更改背景颜色,它是“透明的”。
【解决方案2】:
.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 文件

【讨论】:

    【解决方案3】:

    也许在你的脑海中为 IE 使用条件标签

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

    【讨论】:

    • 样式表中没有这样的语法。
    猜你喜欢
    • 1970-01-01
    • 2012-03-31
    • 2014-01-21
    • 1970-01-01
    • 1970-01-01
    • 2021-11-27
    • 2017-08-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多