71

聚焦输入字段时如何更改占位符的颜色?我使用这个 css 来设置默认颜色,但是如何在焦点上更改它?

::placeholder { color: blue; }

::-webkit-input-placeholder { color: blue; }

/* Firefox < 19 */
:-moz-placeholder { color: blue; }

/* Firefox > 19 */
::-moz-placeholder { color: blue; }

/* Internet Explorer 10 */
:-ms-input-placeholder { color: blue; }
4

10 回答 10

131

试试这个,这应该工作:

input::-webkit-input-placeholder {
    color: #999;
}
input:focus::-webkit-input-placeholder {
    color: red;
}

/* Firefox < 19 */
input:-moz-placeholder {
    color: #999;
}
input:focus:-moz-placeholder {
    color: red;
}

/* Firefox > 19 */
input::-moz-placeholder {
    color: #999;
}
input:focus::-moz-placeholder {
    color: red;
}

/* Internet Explorer 10 */
input:-ms-input-placeholder {
    color: #999;
}
input:focus:-ms-input-placeholder {
    color: red;
}

这是一个例子:http: //jsfiddle.net/XDutj/27/

于 2012-11-01T18:47:12.017 回答
10

这对我有用:

input:focus::placeholder {
  color: blue;
}
于 2020-09-18T17:32:14.047 回答
5

除了 Pranav 的回答,我还改进了与 textarea 兼容的代码:

::-webkit-input-placeholder { color: #999; }
:-moz-placeholder { color: #999; }

:focus::-webkit-input-placeholder { color: #ccc; }
:focus:-moz-placeholder { color: #ccc; }​
于 2012-11-01T20:06:55.473 回答
2

以下对我有用:

input:focus::-webkit-input-placeholder
{
    color: red;
}
于 2018-01-02T16:15:05.913 回答
1

试试这个:

HTML

<input type='text' placeholder='Enter text' />

CSS

input[placeholder]:focus { color: red; }
于 2012-11-01T18:37:52.583 回答
1

我用 JQuery 找到了这个解决方案:

 $('input[type="text"]').each(function(){

    $(this).focus(function(){
      $(this).addClass('input-focus');
    });

    $(this).blur(function(){
      $(this).removeClass('input-focus');
    });

  });

用这个CSS:

.input-focus::-webkit-input-placeholder { color: #f00; }    
.input-focus:-moz-placeholder { color: #f00; }
.input-focus:-ms-input-placeholder { color: #f00; }
于 2012-11-01T18:56:44.867 回答
1

使用星号*选择所有内容

*::-webkit-input-placeholder { color: #999; }


*:-moz-placeholder { color: #999; }


*::-moz-placeholder { color: #999; }


*:-ms-input-placeholder { color: #999; }
于 2014-10-02T00:56:49.053 回答
1

完整和更新 (2021) 示例:

input::placeholder {
  color: blue;
}

input:focus::placeholder {
  color: green;
}
<label for="city">City:</label><br>
<input type="text" id="city" name="city" placeholder="your favorite city">

于 2022-01-11T16:25:39.737 回答
0

从 Firefox 19 开始:将表单元素与 placeholder 属性匹配的 :-moz-placeholder 伪类已被删除,而添加了 ::-moz-placeholder 伪元素。

input:focus::-moz-placeholder { color: transparent; }
于 2013-02-23T21:23:12.387 回答
-1

您可以创建一个材料设计动画占位符,当输入字段聚焦时,该占位符会在顶部收缩。

<div class="field">
 <input type="text" name="user" required><br>
 <label>Enter Username</label>
 </div>

基本上,标签字段将充当占位符。我们只能使用 css 来做到这一点。在这里解释http://www.voidtricks.com/create-material-design-animated-placeholder/

于 2015-10-26T12:17:53.593 回答