【发布时间】:2012-07-07 10:25:48
【问题描述】:
有时最好(从设计的角度)在每个字段中添加占位符文本,而不是在表单中标记每个字段。例如,不要这样:
----------------------------------
Full Name: | |
----------------------------------
你有这个:
----------------------------------
| Full Name |
----------------------------------
当您单击该字段时,文本会消失,您可以写任何您想要的内容。如果您跳过该字段而不输入任何文本,则占位符会重新出现。
我见过很多方法,但所有方法都涉及 JavaScript。例如,Twitter 在他们的signup page 上做得不错,但是如果禁用了 Javascript,您最终会在“全名”这个词上输入您的名字。
我正在寻找一种即使在禁用 JavaScript 的情况下也能工作的纯 CSS 方法。我想出的唯一可能的解决方案是将<input>标签的背景设置为所需文本的图像,然后当有人点击文本框时使用input:focus伪类清除背景图像.这似乎可行,但不必使用图像会很好。
有没有人知道如何做到这一点的好资源?
【问题讨论】:
-
如果您能解释一下 placeholder 属性对那些消息不灵通的人的作用,那就太好了。就像我一分钟前一样。我不认为旧的 CSS(HTML5/CSS3 之前的时代)可以做到这一点......
-
我认为您正在将 CSS 推向它无法(还)执行您期望它的任务的领域。
::before和::after伪元素有... 可能性,但input元素不可靠,任何实现伪元素的浏览器也将实现 @987654329 @属性。 -
-
@username:没错。我会在我的帖子中说得更清楚。
-
@DavidThomas 你错了:例如 IE8 不支持 placeholder 属性,但它支持 after 和 before 伪元素。
标签: html css placeholder