【问题标题】:IE9 CSS universal selector takes precedence over direct selector with importantIE9 CSS 通用选择器优先于具有重要的直接选择器
【发布时间】:2014-08-03 04:57:33
【问题描述】:

所以我的 CSS 文件中有一个通用选择器来更改字体系列和颜色等一些内容,因为这些规则几乎可以应用于任何东西,但有一两个例外:

*
{
    font-family: "Roboto", Sans, Arial, serif;
    color: white;

    outline:none;
}

其中一种情况是选择框,它在 IE 中有些可配置。

白色文本颜色与选择框的自然白色背景冲突,所以我在通用选择器之后添加了以下规则:

div#cart div.donate p select
{
    color: black !important;
}

但 IE 9 仍然使用通用规则而不是目标规则。为什么?

这是一个 JSFiddle 演示问题。

【问题讨论】:

  • 你为什么使用通用选择器?使用 body { color: white} 之类的东西,让级联处理剩下的事情。
  • !important 是一个陷阱。我们其他人使用 CSS 特异性。
  • @sdsanders 好点。我没有想到。
  • @Diodeus 我只在那里使用了重要的,因为纯色:黑色规则不起作用。我通常从不使用它。
  • @sdsanders 成功了!谢谢!

标签: css internet-explorer internet-explorer-9


【解决方案1】:

并不是通用规则具有更高的特异性,而是select 不会在IE9 中设置文本颜色的样式。

从您的 JSFiddle 中,#gift-sel option 将在 IE9 中设置该文本的样式,因为 IE9 依赖于 option 而不是 select 来设置颜色样式。

【讨论】:

    猜你喜欢
    • 2011-11-01
    • 1970-01-01
    • 2012-07-10
    • 1970-01-01
    • 1970-01-01
    • 2015-03-03
    • 2010-12-10
    • 1970-01-01
    • 2011-08-01
    相关资源
    最近更新 更多