如何更改禁用输入的字体颜色?

时间:2011-05-31 11:39:32

标签: css internet-explorer input

我需要在CSS中更改已禁用的输入元素的样式。

<input type="text" class="details-dialog" disabled="disabled" />

我如何为Internet Explorer执行此操作?

10 个答案:

答案 0 :(得分:45)

您无法使用Internet Explorer。

请参阅我在相关主题上撰写的this comment

  

似乎没有好办法,   看到:   How to change color of disabled html controls in IE8 using css    - 您可以将输入设置为readonly,但是还有其他输入   后果(例如readonly,   input将被发送到服务器   在提交时,但是disabled,它不会   be):http://jsfiddle.net/wCFBw/40

另请参阅:Changing font colour in Textboxes in IE which are disabled

答案 1 :(得分:39)

你可以:

input[type="text"][disabled] {
   color: red;
}

答案 2 :(得分:19)

以下内容让您在IE8中非常接近,并且也适用于其他浏览器。

在你的HTML中:

<input type="text" 
       readonly="readonly"    <!-- disallow editting -->
       onfocus="this.blur();" <!-- prevent focus -->
       tabindex="-1"          <!-- disallow tabbing -->
       class="disabledInput"  <!-- change the color with CSS -->
       />

在你的CSS中:

.disabledInput {
    color: black;
}

在IE8中,悬停时会有少量边框颜色变化。 input.disabledInput的一些CSS:hover可能会处理这个问题。

答案 3 :(得分:7)

input[disabled], input[disabled]:hover { background-color:#444; }

答案 4 :(得分:4)

disabled替换为readonly="readonly"。我认为这是相同的功能。

<input type="text" class="details-dialog" readonly="readonly" style="color: ur color;">

答案 5 :(得分:2)

似乎没有人找到解决方案。我没有一个只基于css,但是通过使用这个JavaScript技巧,我通常可以处理禁用的输入字段。

请记住,禁用的字段始终遵循他们在被禁用之前获得的样式。所以诀窍就是1-启用它们2 - 更改类3-再次禁用它们。由于这种情况发生得非常快,用户无法理解发生了什么。

简单的JavaScript代码如下:

function changeDisabledClass (id, disabledClass){
var myInput=document.getElementById(id);
myInput.disabled=false;             //First make sure it is not disabled
myInput.className=disabledClass;    //change the class
myInput.disabled=true;             //Re-disable it
}

答案 6 :(得分:1)

这是我为此问题找到的解决方案:

//如果是IE

inputElement.writeAttribute(“unselectable”,“on”);

//其他浏览器

inputElement.writeAttribute(“disabled”,“disabled”);

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

答案 7 :(得分:1)

您可以使用以下具有不透明度的样式

input[disabled="disabled"], select[disabled="disabled"], textarea[disabled="disabled"] {
    opacity: 0.85 !important;
}

或特定的CSS类

.ui-state-disabled{
    opacity: 0.85 !important;
}

答案 8 :(得分:1)

这适用于使禁用的选择选项充当标题。它不会删除:disabled选项的默认文本阴影,但它会删除悬停效果。在IE中你不会得到字体颜色,但至少文字阴影消失了。这是html和css:

example.com/index.php?lunchmenu=nextmonth

下面:https://jsfiddle.net/7vb3h0q4/2/

答案 9 :(得分:0)

您可以改用readonly。以下将为您解决问题。

<input type="text" class="details-dialog" style="background-color: #bbbbbb" readonly>

但是您需要注意以下几点。可以根据您的业务需求使用它。

  

只读元素是不可编辑的,但是当   根据表格提交。禁用的元素不可编辑且不可编辑   发送时提交。