如何在输入中只使用占位符斜体

pra*_*kar 42 html input placeholder

嗨,任何人都可以告诉我,我怎么能只做占位符斜体,但当有人在测试盒内写字时,书面文字不应该有斜体.

mycode的:

<input type="text" id="search" placeholder="Search" style="font-style:italic">
Run Code Online (Sandbox Code Playgroud)

我怎么能把斜体放在占位符上而不是整个输入?

Jos*_*kle 81

当然.只需将样式应用于这些CSS规则:

::-webkit-input-placeholder {
   font-style: italic;
}
:-moz-placeholder {
   font-style: italic;  
}
::-moz-placeholder {
   font-style: italic;  
}
:-ms-input-placeholder {  
   font-style: italic; 
}
Run Code Online (Sandbox Code Playgroud)

可能并非所有这些规则都是必需的.我总是只参考CSS技巧,因为我总是忘记怎么做.

编辑:请注意,这些规则不能合并为一个选择器.必须按照Dave Kennedy在下面的评论中单独声明它们.

  • 不幸的是,这些规则似乎必须单独声明,即`:: - webkit-input-placeholder,:: - moz-placeholder {font-style:italic; }`不起作用. (7认同)
  • @DaveKennedy @JosephMarikle这是[CSS3 Spec](https://www.w3.org/TR/css3-selectors/#Conformance)的一部分.具体来说:_包含无效选择器的一组选择器是invalid_.因此,因为Firefox将`:-ms-input-placeholder`视为无效,它会使整个选择器组无效.这就是你需要将它们分开的原因. (6认同)

Zac*_*Zac 9

MDN,您可以使用:placeholder-shown伪类。

input:placeholder-shown {
   font-style: italic;
}
Run Code Online (Sandbox Code Playgroud)

这具有不带前缀的优点,并且在撰写本文时浏览器支持不错 (92-ish%):https : //caniuse.com/#feat=css-placeholder-shown