IE忽略了CSS,即使它具有更高的特异性

时间:2010-08-05 11:12:34

标签: css css-specificity

我有一些滑门按钮css ..我使用了一个按钮标签和两个内部跨度。

我有这个来指定普通按钮的背景图像;

button span {
 background: url(button_right.png) no-repeat top right;
}

哪个是默认按钮颜色。然后我有一个'灰色'按钮(我给按钮一个'灰色')。

button.gray span {
 background: url(button_right_gray.png) no-repeat top right;
}

出于某种原因...... IE(8)不喜欢这样并且忽略了将原始图像保留为背景的灰色css。但是,以下“悬停”css在IE中工作;

button.gray:hover span span {
      color: #6c6c6c;
      background-position: left -29px;
  }

我认为'button.gray span'比'按钮跨度'具有更高的特异性(在所有其他浏览器中都有)。

编辑: 好的,所以我发现了这个问题。在我的CSS声明中,我有以下

button.gray span,
  button:disabled span {
background: url(button_right.png) no-repeat top right;
}

如果我从声明列表中删除按钮:禁用跨度,它可以正常工作!

4 个答案:

答案 0 :(得分:2)

IE does not support the :disabled pseudo class selector。 IE的行为是在遇到无效或无法识别的选择器(实际上是in line with the specification时 - 跳过整个规则 - 即使首先不支持:disabled也不是!),这样可以解释你的内容看到了。

答案 1 :(得分:0)

你尝试过添加!重要吗?即。

    button.gray span {
      background: url(button_right_gray.png) no-repeat top right !important;
    }

答案 2 :(得分:0)

您是否尝试过查看图片本身?使用颜色而不是图像,ie8似乎显示.gray类很好:

http://screencast.com/t/YzA4MGEx

答案 3 :(得分:0)

根据我的编辑;

好的,所以我发现了这个问题。在我的CSS声明中,我有以下

button.gray span,   按钮:已禁用范围{ background:url(button_right.png)右上角不重复; }

如果我从声明列表中删除按钮:禁用范围,它可以正常工作!什么是IE的按钮问题:因为它完全停止收听整个声明而被禁用?