无法使用Bootstrap 3更改占位符颜色

Iva*_*ang 66 css placeholder css3 twitter-bootstrap-3

两个问题:

  1. 我试图使占位符文本变白.但它不起作用.我正在使用Bootstrap 3.JSFiddle demo

  2. 另一个问题是如何更改占位符颜色而不是全局.也就是说,我有多个字段,我只希望一个字段有白色占位符,所有其他字段保持默认颜色.

提前致谢.

HTML:

<form id="search-form" class="navbar-form navbar-left" role="search">
    <div class="">
        <div class="right-inner-addon"> <i class="icon-search search-submit"></i>
            <input type="search" class="form-control" placeholder="search" />
        </div>
    </div>
</form>
Run Code Online (Sandbox Code Playgroud)

CSS:

.right-inner-addon {
    position: relative;
}
.right-inner-addon input {
    padding-right: 30px;
    background-color:#303030;
    font-size: 13px;
    color:white;

}
.right-inner-addon i {
    position: absolute;
    right: 0px;
    padding: 10px 12px;
    /*  pointer-events: none; */
    cursor: pointer;
    color:white;
}


/* do not group these rules*/
::-webkit-input-placeholder { color: white; }
FF 4-18 
:-moz-placeholder           { color: white; }
 FF 19+
::-moz-placeholder          { color: white; }
 IE 10+
:-ms-input-placeholder      { color: white; } 
Run Code Online (Sandbox Code Playgroud)

Den*_*zak 180

将占位符分配给类选择器,如下所示:

.form-control::-webkit-input-placeholder { color: white; }  /* WebKit, Blink, Edge */
.form-control:-moz-placeholder { color: white; }  /* Mozilla Firefox 4 to 18 */
.form-control::-moz-placeholder { color: white; }  /* Mozilla Firefox 19+ */
.form-control:-ms-input-placeholder { color: white; }  /* Internet Explorer 10-11 */
.form-control::-ms-input-placeholder { color: white; }  /* Microsoft Edge */
Run Code Online (Sandbox Code Playgroud)

它会起作用,因为一个更强大的选择器可能会覆盖你的全局.我在平板电脑上,所以我不能检查并确认它是哪个更强的选择器:)但它确实有效我在你的小提琴中尝试过它.

这也回答了你的第二个问题.通过将其分配给类或id并仅为该类提供输入,您可以控制样式的输入.


mlu*_*noe 23

这里有一个问题:https://github.com/twbs/bootstrap/issues/14107

该提交解决了这个问题:https://github.com/twbs/bootstrap/commit/bd292ca3b89da982abf34473318c77ace3417fb5

因此,解决方案是将其覆盖回#999而不是white建议的(并且还覆盖所有bootstraps样式,而不仅仅是webkit样式):

.form-control::-moz-placeholder {
  color: #999;
}
.form-control:-ms-input-placeholder {
  color: #999;
}
.form-control::-webkit-input-placeholder {
  color: #999;
}
Run Code Online (Sandbox Code Playgroud)


cwd*_*cwd 6

可能的问题

建议的完整性检查 - 确保将form-control类添加到输入中.

如果您的页面上加载了bootstrap css,但是您的输入没有,
class="form-control"那么占位符CSS选择器将不适用于它们.

来自文档的示例标记:

我知道这不适用于OP的标记但是因为我最初错过了这个并花了一点努力尝试调试它,我发布这个答案来帮助其他人.


Ole*_*kin 5

我正在使用 Bootstrap 4,而 Dennis Puzak 的解决方案对我不起作用。

下一个解决方案对我有用

.form-control::placeholder { color: white;} /* Chrome, Firefox, Opera*/
:-ms-input-placeholder.form-control { color: white; }  /* Internet Explorer*/
.form-control::-ms-input-placeholder { color: white; }  /* Microsoft Edge*/
Run Code Online (Sandbox Code Playgroud)