HTML5 表单文本占位符 - 它们有 CSS 伪类吗?

Posted

技术标签:

【中文标题】HTML5 表单文本占位符 - 它们有 CSS 伪类吗?【英文标题】:HTML5 Form Text Placeholders - Do they have a CSS pseudo-class? 【发布时间】:2011-06-19 07:59:50 【问题描述】:

读了一篇关于 html5 的文章,我突然想到,虽然占位符在表单可用性方面非常有用,但如果它们不能在没有 javascript 的情况下使用 CSS 来定位,那么它们确实是一个婴儿步骤。

那么我可以将 CSS 中的占位符定位为与输入文本不同的外观吗?

【问题讨论】:

有没有办法在没有 JavaScript 的情况下获得“占位符”行为? 重复:***.com/questions/2610497/… @Pointy 是的,正如 Mild Fuzz 所说,它在 HTML5 中。 This, for example,已经可以在 Chrome 中使用了。 好的,谢谢你的信息:-) @Jon 很好的发现;我现在用“伪类”标记了那个较旧的问题,以便更容易找到;让我印象深刻的是,这是该问题中缺少的重要术语。 【参考方案1】:

Webkit 使用 ::-webkit-input-placeholder 伪元素。 Moz 使用 :-moz-placeholder 伪类。

【讨论】:

感谢您提供的有用信息。 IE9 有变种吗? IE9 不支持占位符。 感谢您为我澄清这一点。 您可以假设 ::-ms-input-placeholder 和 ::placeholder 以供将来兼容。 不,你不能。你会赌一把。这些都不是标准化的,它们甚至彼此不兼容。没有任何迹象表明 IE 将采用 WebKit 的方法或标准将两者兼而有之。【参考方案2】:

我假设你的 HTML 中有这样的东西

<input type="text" name="name" />

对应的css是

input::-webkit-input-placeholder  /* Chrome/Opera/Safari */
  color: blue;

input::-moz-placeholder  /* Firefox 19+ */
  color: blue;

input:-ms-input-placeholder  /* IE 10+ */
  color: blue;

input:-moz-placeholder  /* Firefox 18- */
  color: blue;

input:placeholder  
  color: blue;

我也鼓励你看看

input:placeholder-shown 
  border: 5px solid red;

这是一个很好的resource。

【讨论】:

以上是关于HTML5 表单文本占位符 - 它们有 CSS 伪类吗?的主要内容,如果未能解决你的问题,请参考以下文章

在 Prototype 中使用表单验证的 HTML5 表单占位符回退

css 表单占位符文本

css 表单占位符文本

css 表单占位符文本

css 搜索表单占位符文本

css 搜索表单占位符文本颜色