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