首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在IE11中设置输入文本颜色,但不设置占位符颜色

如何在IE11中设置输入文本颜色,但不设置占位符颜色
EN

Stack Overflow用户
提问于 2014-07-02 19:40:24
回答 3查看 8.1K关注 0票数 7

如何更改input 文本框的字体颜色而不影响Internet 11中的placeholder字体颜色?

如果我在输入(小提琴)中更改字体的颜色:

代码语言:javascript
运行
复制
<div class="buttonToolbar">
    <input type="text" placeholder="e.g. Stackoverflow"><br>
</div>

CSS

代码语言:javascript
运行
复制
.buttonToolbar input {
    color: Blue;
}
:-ms-input-placeholder { /* Internet Explorer 10+ */
    font-style: italic;
    color: GrayText;
}
::-webkit-input-placeholder { /* WebKit browsers */
     font-style: italic;
     color: GrayText;
}

占位符文本不再是Internet 11中默认的灰色颜色:

但它确实显示了我想在Chrome 35中显示的内容:

奖金喋喋不休

如果我不设置input框的样式,那么输入框就不会被样式化。改变:

代码语言:javascript
运行
复制
.buttonToolbar input {
    color: Blue;
}

代码语言:javascript
运行
复制
.buttonToolbar {
    color: Blue;
}

这意味着占位符文本现在执行它应该做的事情:

但是,现在文本的颜色并没有做它应该做的事情:

我需要的是弄清楚如何用CSS改变输入的HTML5占位符颜色。

奖金阅读

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2014-07-02 21:43:30

占位符选择器需要更具体,如下所示。

代码语言:javascript
运行
复制
.buttonToolbar input {
    color: Blue;
}
.buttonToolbar input:-ms-input-placeholder { /* Internet Explorer 10+ */
    font-style: italic;
    color: GrayText;
}
.buttonToolbar input::-webkit-input-placeholder { /* WebKit browsers */
     font-style: italic;
     color: GrayText;
}

http://jsfiddle.net/55Sfz/2/

票数 3
EN

Stack Overflow用户

发布于 2014-07-02 20:07:58

我对此有点陌生,这个答案可能只是一个快速的解决办法.但是如果你在GrayText之后加上!重要的话,那么它似乎是有效的(至少在IE10中是这样)。

代码语言:javascript
运行
复制
color: GrayText !important;

这是小提琴http://jsfiddle.net/uc2Rj/

如果你不想使用!重要的是,这至少可以让你朝着正确的方向解决你的问题。它可能是关于类的伪元素和优先级的东西。(为什么我不能覆盖现有的伪元素?)

票数 4
EN

Stack Overflow用户

发布于 2018-08-22 12:14:45

有三种不同的实现:伪元素、伪类和nothing。

代码语言:javascript
运行
复制
WebKit, Blink (Safari, Google Chrome, Opera 15+) and Microsoft Edge are using a pseudo-element: ::-webkit-input-placeholder. 

Mozilla Firefox 4 to 18 is using a pseudo-class: :-moz-placeholder (one colon). 

Mozilla Firefox 19+ is using a pseudo-element: ::-moz-placeholder, but the old selector will still work for a while. 

Internet 10和11正在使用伪类::-ms-输入-占位符.2017年4月:大多数现代浏览器支持简单的伪元素::占位符Internet 9和更低版本根本不支持占位符属性,而Opera 12和更低版本则不支持占位符的任何CSS选择器。

关于最佳实施的讨论仍在进行中。注意,伪元素的作用就像影子DOM中的真实元素。输入上的填充将不会得到与伪元素相同的背景色。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24539672

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档