如何使用css更改IE8中禁用的html控件的颜色

如何使用css更改IE8中禁用的html控件的颜色,html,css,internet-explorer,Html,Css,Internet Explorer,我尝试在使用以下css禁用输入控件时更改其颜色 input[disabled='disabled']{ color: #666; } 这适用于大多数浏览器,但不适用于IE。我可以更改任何其他样式属性,如背景颜色、边框颜色等。。。只是没有颜色。有人能解释一下吗?不幸的是,如果你使用disabled属性,不管你尝试什么,IE都会将文本的颜色默认为灰色,带有奇怪的白色阴影…东西。。。然而,所有其他风格仍将有效-/ 我解决IE中“禁用”控件的问题的方法是,在输入控件为type=check

我尝试在使用以下css禁用输入控件时更改其颜色

input[disabled='disabled']{
  color: #666;     
}

这适用于大多数浏览器,但不适用于IE。我可以更改任何其他样式属性,如背景颜色、边框颜色等。。。只是没有颜色。有人能解释一下吗?

不幸的是,如果你使用disabled属性,不管你尝试什么,IE都会将文本的颜色默认为灰色,带有奇怪的白色阴影…东西。。。然而,所有其他风格仍将有效-/

我解决IE中“禁用”控件的问题的方法是,在输入控件为type=checkbox的情况下,不使用丑陋的灰色,而是保持启用状态,并在onclick事件中使用一点javascript来防止更改:

onclick='this.checked == true ? this.checked = false : this.checked = true;'

正如Wayne提到的,三年后仍然没有运气w/IE9,但是


您可以尝试使用CSS降低
不透明度
,这会使其更具可读性,并有助于整个禁用状态。

我刚刚将整个背景设置为浅灰色,我认为它更容易/快速地传达框已禁用的信息

input[disabled]{
  background: #D4D4D4;     
}

无法覆盖disable=“disable”属性的样式。以下是我解决此问题的方法,请注意,在我的案例中,我只选择了提交按钮:

if ($.browser.msie) {
    $("input[type='submit'][disabled='disabled']").each(function() {
        $(this).removeAttr("disabled");
        $(this).attr("onclick", "javascript:return false;");
    });
}

示例:

我知道创建此主题已经有一段时间了,但我创建了此解决方案,而且。。。这对我有用!(使用IE 9)

唯一的结果是您无法选择输入的值

使用Javascript:

    if (input.addEventListener)
            input.addEventListener('focus', function(){input.blur()}, true)
    if (input.attachEvent)
            input.attachEvent("onfocus", function(){input.blur()})

我在IE10中遇到了与
元素相同的问题,并找到了仅适用于选定元素的解决方案:

有一个Microsoft伪元素允许修改文本颜色:

select[disabled='disabled']::-ms-value {
    color: #000;
}
该规则必须是独立的,否则其他浏览器将由于语法错误而忽略整个规则。有关其他仅Internet Explorer的伪元素,请参见


编辑:我认为规则应该是
select[disabled]:-ms value
,但我面前没有旧的IE版本可以尝试它-重新编辑此段落或添加注释(如果这是一种改进)。

我找到了解决此问题的方法:

//如果IE

writeAttribute(“不可选择”、“打开”)

//其他浏览器

inputElement.writeAttribute(“禁用”、“禁用”)


通过使用此技巧,您可以将样式表添加到在IE和其他浏览器中不可编辑的输入框中的输入元素。

我混合了user1733926和Hamid的解决方案,并找到了IE8的有效代码,希望知道它是否也在IE 9/10中工作(?)


如果($.browser.msie){
$(“*[disabled='disabled']”)。每个(函数(){
$(此).removeAttr(“禁用”);
$(this.attr(“不可选择”、“打开”);
});
}

我也遇到了同样的问题,textarea“disabled”将字体颜色更改为灰色。 我对textarea使用了“readonly”属性,而不是“disabled”属性 下面是css

textarea[readonly] {
border:none; //for optional look
background-color:#000000; //Desired Background color        
color:#ffffff;// Desired text color
}

这对我来说就像一个符咒!!,因此,我建议在任何其他解决方案之前先尝试此方法,因为用“readonly”替换“disabled”很容易,而无需更改代码的任何其他部分。

阅读本文后,我决定创建一个类似于禁用输入框但为“readonly”的输入

因此,我已经使它无法被选择或选项卡,或有一个鼠标光标,让用户的想法,他们可以改变或选择的价值

在IE8/9、Mozzila 18、Chrome 29上测试

<input name="UserName" class="accountInputDisabled" id="UserName" type="text" readOnly="readonly" value="" unselectable="on" tabindex="-1" onselectstart="return false;" ondragstart="return false;" onmousedown='return false;'/>


input.accountInputDisabled {
    border: 1px solid #BABABA !important;
    background-color: #E5E5E5 !important;    
    color: #000000;
    -webkit-touch-callout: none;
    -webkit-user-select: none;
    -khtml-user-select: none;
    -moz-user-select: none;
    -moz-user-input: disabled;
    -ms-user-select: none;
    cursor:not-allowed;
}

input:focus {
    outline: none;
}          

input.accountInputDisabled{
边框:1px实心#巴巴巴!重要;
背景色:#E5!重要;
颜色:#000000;
-webkit触摸标注:无;
-webkit用户选择:无;
-khtml用户选择:无;
-moz用户选择:无;
-moz用户输入:禁用;
-ms用户选择:无;
光标:不允许;
}
输入:焦点{
大纲:无;
}          

无需过度使用CSS,使用基于类的方法,玩事件可以完美地工作

你可以做一件事:

<button class="disabled" onmousedown="return checkDisable();">

function checkDisable() {
 if ($(this).hasClass('disabled')) { return false; }
 }

函数checkDisable(){
if($(this.hasClass('disabled')){return false;}
}

删除禁用的属性并使用只读属性。编写所需的CSS以获得所需的结果。这适用于IE8和IE9

例如,对于深灰色

 input[readonly]{
   color: #333333;     
 }

请检查这个CSS代码

input[type='button']:disabled, button:disabled
 {
    color:#933;
    text-decoration:underline;
}
或检查此URL。

我在stackoverflow遇到了这段代码,它帮助我使用javascript禁用css类

$("#textboxtest").prop("disabled", false).removeClass("k-state-disabled");
原始线程可以在
我想我应该分享

使用此css,适用于IE11:

input[disabled="disabled"], select[disabled="disabled"], textarea[disabled="disabled"] {
    opacity:0.99 !important;
    background:black;
    text-shadow:inherit;
    background-color:white;
    color:black
}

这个问题在IE11中得到了解决。
如果问题仍然存在于IE11中,请检查IE使用的渲染引擎。

是,但为什么?是不是在幕后使用了一些非标准的过滤方式呢?我差点否决了这个答案,但我自己也停了下来。我之所以要这么做,是因为我讨厌这个答案;不是因为答案错了。投票结果:pI认为这与“友好错误页面”属于同一类别,M$只是试图提供帮助。虽然这个答案是“正确的”,但我认为将其维基化并链接到其他问题会很有用,因为这些问题有助于记录可供选择的选项,以减少这种情况。e、 g.强制背景颜色为白色以使内容更具可读性,使用JS更改为只读+强制模糊聚焦,JS显示div而不是输入。4年来,有任何改进吗?我认为
onclick='return false;'
做了同样的事情,但却简单地解释了为什么这会被否决?它在IE、FF和Chrome的最新版本中工作……问题不是以前的IE8吗?#666;让我咯咯地笑了起来:)这不是故意的,它只是一个很好的灰色用于禁用的控件。请看这条评论,它帮助了我)我在IE10和IE11上试过,效果很好。注意禁用属性。您可以在上定义它
input[disabled="disabled"], select[disabled="disabled"], textarea[disabled="disabled"] {
    opacity:0.99 !important;
    background:black;
    text-shadow:inherit;
    background-color:white;
    color:black
}