2015-01-15 65 views
7

我正在寫一個移動網站,我正在用sass來設計它。:: - webkit輸入佔位符不起作用

我想更改textinput的佔位符顏色,但我無法做到這一點。

這是佔位符混入

@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行上設置了一個錯誤,告訴我:「未知的僞選擇器-webkit-input-placeholder」和chrome似乎無法識別該標記。

如何更改佔位符的顏色?無論迴應是在sass還是css。

在此先感謝。

+0

參見:http://stackoverflow.com/a/17181946/1652962 – cimmanon

回答

30

不能使用它單一的,只有選擇:

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; 
} 
+0

謝謝!但我必須製作適用於所有瀏覽器的應用程序......如果我不能使用它們,我該怎麼做? 謝謝! – guest9119

+1

你和我的mixin都是對的。它的工作很好。我的筆記是關於創建所有佔位符選擇器的通用選擇器。 – Pinal

+0

對不起,但它仍然沒有工作:( – guest9119