【发布时间】:2015-02-23 00:13:29
【问题描述】:
如何将占位符的文本格式化为斜体,但是当有人在文本框内书写时,文本不应该是斜体。
代码:
<input type="text" id="search" placeholder="Search" style="font-style:italic">
如何将斜体文本仅放置在占位符而不是整个输入上?
【问题讨论】:
标签: html input placeholder
如何将占位符的文本格式化为斜体,但是当有人在文本框内书写时,文本不应该是斜体。
代码:
<input type="text" id="search" placeholder="Search" style="font-style:italic">
如何将斜体文本仅放置在占位符而不是整个输入上?
【问题讨论】:
标签: html input placeholder
当然。只需将样式应用于这些 CSS 规则:
::-webkit-input-placeholder {
font-style: italic;
}
:-moz-placeholder {
font-style: italic;
}
::-moz-placeholder {
font-style: italic;
}
:-ms-input-placeholder {
font-style: italic;
}
可能不需要所有这些规则。我总是只引用CSS Tricks,因为我总是忘记怎么做。
编辑:请注意,这些规则不能合并到一个选择器中。它们必须单独声明,如以下 cmets 中的 Dave Kennedy 所述。
【讨论】:
::-webkit-input-placeholder, ::-moz-placeholder { font-style: italic; } 不起作用。
:-ms-input-placeholder 视为无效,它使整个选择器组无效。这就是为什么您需要将它们分开。
从MDN,您可以使用:placeholder-shown 伪类。
input:placeholder-shown {
font-style: italic;
}
这具有不带前缀的优点,并且在撰写本文时浏览器支持还不错(92-ish%):https://caniuse.com/#feat=css-placeholder-shown。
【讨论】:
另一种方式::focus 选择器是你的朋友。要使其仅用于占位符,请使用 :not 选择器。仅当输入字段不是当前选择时才具有 CSS 规则。 在你的 CSS 中定义:
.class-of-your-input-field:not(:focus) {
font-style:italic;
}
【讨论】: