IE7选择选项文字颜色显示不正确

问题描述:

我正在使用IE7。我得到了下面的CSS规则:IE7选择选项文字颜色显示不正确

form [disabled] { 
    color: #999 !important; 
} 

在我禁用在SELECT每个选项一个jQuery就绪()事件:

$('#mySelect option').attr('disabled', 'disabled'); 

,然后再次启用其中的一些禁用的选项:

('#myOption').removeAttr('disabled'); 

现在看起来都很好。在这种情况下,除第一个选项外,每个选项都有一个灰色文本。

但是,如果在页面加载后更改了一个选项的禁用属性,例如点击按钮后颜色不再改变。

如果我检查与IE7开发工具,我可以清楚地看到,残疾人属性消失,且颜色设置为原来的颜色再次(其他然后灰色),但仍选择HAST灰色文本选项。

反过来也是如此。如果我将禁用属性放在之前没有禁用的选项上,我可以看到开发人员工具栏中设置的attrbibute,我可以看到颜色设置为CSS中定义的颜色,但在实际浏览器窗口中看不到它。仍然是旧的颜色。

这是一些非常怪异的行为,我知道IE7有这个错误(或功能?)不处理在所有禁用的表单元素。

但我希望至少在用户不应选择的项目上有灰色。我无法让这个工作正常。

有什么办法可以让这个工作?

+0

不'在IE7 important'工作!? – Znarkus

举一个简单的变通方法,您可以为元素的类disabled,当你禁用它们。

JS:

$('#mySelect option').addClass('disabled').attr('disabled', 'disabled'); 

JS:

('#myOption').removeClass('disabled').removeAttr('disabled'); 

CSS:

form .disabled { 
    color: #999 !important; 
} 
+0

这个问题似乎并不是CSS。正如开发人员工具栏告诉我的,颜色实际上是正确应用于选项的。 IE7只是没有相应地渲染它。 – tyrondis

+0

那么我的解决方案不起作用? – Znarkus