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

isx*_*ker 51 css internet-explorer input

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

<input type="text" class="details-dialog" disabled="disabled" />
Run Code Online (Sandbox Code Playgroud)

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

thi*_*dot 46

你不能用于Internet Explorer.

看到我在相关主题上写的这篇评论:

似乎没有一个好方法,请参阅: 如何使用css更改IE8中禁用的html控件的颜色 - 您可以将输入设置为readonly相反,但这有其他后果(例如readonly,input将被发送到服务器提交,但有disabled,它不会是):http://jsfiddle.net/wCFBw/40

另请参阅:更改IE中禁用的文本框中的字体颜色

  • IE SUCKS的另一个原因! (5认同)

Ale*_* K. 40

您可以:

input[type="text"][disabled] {
   color: red;
}
Run Code Online (Sandbox Code Playgroud)

  • 这实际上不适用于任何版本的IE:http://jsfiddle.net/aTcGT/ (37认同)
  • +1表示正确答案.(但是,应该注意的是IE6不支持这种情况.我建议不支持IE6,但是如果你确实需要支持它,那么你需要用动态类代替它,按照@max的答案) (6认同)
  • @Spudley你不能说它是正确的,如果它在IE中不起作用并且OP询问"我怎么能为IE做到这一点?" (5认同)
  • @Spudley它在任何版本的IE中都不起作用(不是100%肯定9). (3认同)

小智 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 -->
       />
Run Code Online (Sandbox Code Playgroud)

在你的CSS中:

.disabledInput {
    color: black;
}
Run Code Online (Sandbox Code Playgroud)

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

  • @ruionwriting除了Alex K的解决方案在IE7-9中不起作用.支持它的人显然没有测试它或关心IE. (5认同)

小智 8

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

<input type="text" class="details-dialog" readonly="readonly" style="color: ur color;">
Run Code Online (Sandbox Code Playgroud)

  • 只读不一样。只读值要发送到服务器,您将需要添加 tabindex="-1" 来停止制表符,可能会产生更多副作用。 (5认同)

小智 7

input[disabled], input[disabled]:hover { background-color:#444; }
Run Code Online (Sandbox Code Playgroud)