:: - webkit-input-placeholder不起作用

时间:2015-01-15 09:00:51

标签: html css sass webkit placeholder

我正在写一个移动网站,并且我用sass设计它。

我想更改textinput的占位符颜色,但我无法执行此操作。

这是占位符的mixin

@mixin placeholder($color) {
  ::-webkit-input-placeholder {color: $color}
  :-moz-placeholder           {color: $color}
  ::-moz-placeholder          {color: $color}
  :-ms-input-placeholder      {color: $color}
}

然后我将它包含在一个类

.input-class {
    @include placeholder(#FFFFFF);
}

最后将类设置为输入

<input class="input-class" ...>

但没有任何反应。另外我的IDE在mixins行上设置了一个错误,上面写着:&#34; Unknown伪选择器-webkit-input-placeholder&#34;和铬似乎无法识别该标签。

如何更改占位符的颜色?无论回复是sass还是css。

提前致谢。

1 个答案:

答案 0 :(得分:32)

您不能单独使用它,只能使用选择器:

input::-webkit-input-placeholder {
    color: #9B9B9B;
}

input:-ms-input-placeholder {
    color: #9B9B9B;
}

input::-moz-placeholder {
    color: #9B9B9B;
}

<强>密新

@mixin placeholder($selector, $color) {
  #{$selector}::-webkit-input-placeholder {color: $color}
  #{$selector}::-moz-placeholder          {color: $color}
  #{$selector}:-ms-input-placeholder      {color: $color}
}

<强>用法

@include placeholder('.input-class', #FFFFFF);

Live example

P.S。不要一起使用它们(这个选择器坏了,css解析器总是会失败):

input::-webkit-input-placeholder,//Not WebKit will fails here
input:-ms-input-placeholder,//Not IE will fails here
input::-moz-placeholder {//Not Firefox will fails here
    color: #9B9B9B;
}