2017-07-07 41 views
3

如果我申请以下规则来输入元素ID为#one那么占位符颜色会发生变化,为什么逗号分隔的占位符规则不能在css中应用?

#one::-webkit-input-placeholder { 
    color: red; 
} 

但是,如果使用逗号分隔符号,以不同的浏览器的占位符规则结合起来,则颜色不适用,例如

#two::-webkit-input-placeholder, 
#two::-moz-placeholder{ 
    color: red; 
} 

工作例如:

#one::-webkit-input-placeholder { 
 
    color: red; 
 
} 
 

 
#two::-webkit-input-placeholder, 
 
#two::-moz-placeholder{ 
 
    color: red; 
 
}
<input id="one" type="text" placeholder="one"> 
 
<input id="two" type="text" placeholder="two">

为什么#two占位符不改变其颜色为红色?

回答

3

这是因为浏览器将只应用规则形式的选择器,它可以完全解释。
对于webkit类型的浏览器-webkit-input-placeholder有效,但-moz-placeholder不是,所以它会破坏整个选择器,反之亦然,对于基于geeko的浏览器。
解决方案是分离浏览器特定的选择器。

#two::-webkit-input-placeholder{ 
    color: red; 
} 
#two::-moz-placeholder{ 
    color: red; 
} 
0

我知道它现在是一个完整的答案,但你可以为每个输入

#one::-webkit-input-placeholder { 
 
    color: red; 
 
} 
 

 

 

 
#two::-webkit-input-placeholder{ 
 
    color: red; 
 
} 
 
#two::-moz-placeholder{ 
 
    color: red; 
 
}
<input id="one" type="text" placeholder="one"> 
 
<input id="two" type="text" placeholder="two">

+0

添加不同种类的我为什么要这么做? – user31782

+0

穆萨有正确的答案和解释..我检查了阴影,所有事情都按预期工作 –

相关问题