更改IE中禁用的文本框中的字体颜色

chu*_*h97 34 css

我注意到你可以改变文本框中文本的颜色,这些文本框在Firefox中应用了一个简单的类但是在IE 6/7中无法实现.有没有人有一个优雅的解决方案来实现这一目标.

bob*_*nce 77

我注意到您可以更改在Firefox中禁用的文本框中的文本颜色

我想这个问题试图说的是:

<textarea disabled="disabled" style="color: red;">Hello</textarea>
Run Code Online (Sandbox Code Playgroud)

在IE中显示灰色文本,在Fox中显示红色.FWIW,Opera也提供灰色,而WebKit浏览器提供红色.

这是一个纯CSS问题,与根据操作系统的小部件集呈现多少表单字段以及根据CSS规则多少呈现一样.这一直是一个跨浏览器差异很大的领域.脚本编写是不相关的,尽管SO希望"使用jQuery"作为每个问题的答案.

通常的解决方法是使用'readonly'而不是'disabled',然后使用样式(例如基于'class ='disabled"')来重现你想要的任何阴影禁用效果.'readonly'控件不会转换为OS级别禁用的小部件,为您提供更大的自定义样式.

  • 我有点困惑,为什么这不是选定的答案.谢谢. (8认同)
  • 是的,readonly仅适用于<textarea>和<input type ="text"/"password">.<input type ="checkbox"/"radio">和其他控件(如<select>)只能"禁用" - 并且在任何情况下都有有限的样式化机会. (3认同)

小智 27

     应该注意的是,使用该disabled属性会导致<input>在表单提交期间不提交基础元素,而readonly控件则提交给服务器.因此,readonly如果您的服务器代码不期望来自该控件的值,则不应使用.

     根据我的经验,尝试破解某些东西以获得可接受的演示文稿通常是不值得的.我建议您更改CSS,以便修复IE禁用的文本样式与您的基础控件样式不冲突,或者使用样式化文本代替控件(因为禁用的控件不能成功提交).使用浏览器而不是反对它.


rob*_*cat 8

我对<select>IE10中的元素有同样的问题并找到了解决方案:

http://jsbin.com/ujapog/90

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

select[disabled='disabled']::-ms-value {
    color: #000;
}
Run Code Online (Sandbox Code Playgroud)

规则必须独立,因为否则其他浏览器会因语法错误而忽略整个规则.有关其他仅限Internet Explorer的psuedo元素,请参阅http://msdn.microsoft.com/en-us/library/ie/hh869604(v=vs.85).aspx.

编辑:-ms-valuepsuedo元素是在IE10中引入的,因此不适用于早期版本.

  • 我怀疑使用`select:disabled :: - ms-value`(参见https://developer.mozilla.org/es/docs/Web/CSS/:disabled)或`select [disabled] :: -ms-value`(但是我目前没有安装IE,所以也没有测试过,对不起). (2认同)