placeholder用于输入框空时显示浅灰色提示文字,获焦或输入即消失,不参与提交;仅支持input(text/email等)和textarea,不可替代label或value,样式需用::placeholder伪元素兼容各浏览器前缀。

用 placeholder 属性最直接
HTML 输入框默认文字不是靠 value,而是用 placeholder。它只在输入框为空且未获得焦点时显示浅灰色提示文字,用户一打字就自动消失,不影响表单提交值。
常见错误是误写成 value="默认文字" —— 这会让文字变成真实初始值,用户不删掉就一起提交,而且无法区分“用户没填”和“用户填了默认值”。
<input type="text" placeholder="请输入用户名"><textarea placeholder="在这里写下您的反馈..."></textarea>- 支持所有可编辑的表单控件:
input(text、email、search等)、textarea,但不支持type="number"或type="date"的部分浏览器(如旧版 Safari)
placeholder 样式怎么微调?
默认颜色偏浅,有时看不清,尤其配深背景时。CSS 可以改,但各浏览器前缀不同,必须都写全:
文章转信息图。将文章/笔记转化为手机可读的 HTML 信息图,自动匹配视觉风格。触发场景:文章转图、笔记转图、信息图、转小红书图、做张图、可视化这篇文章、文生图。
input::placeholder {
color: #666;
font-size: 14px;
}
input::-webkit-input-placeholder { color: #666; }
input::-moz-placeholder { color: #666; }
input:-ms-input-placeholder { color: #666; }
注意:::placeholder 是标准写法,但 IE11 只认 -ms-input-placeholder,Firefox 18–19 要用 :-moz-placeholder(单冒号),新版本才支持双冒号。
需要“默认值”而不是“提示文字”怎么办?
如果业务逻辑真要预填内容(比如编辑页回显数据),那就该用 value,但得配合后端或 JS 控制是否允许用户清空:
- 静态页面:直接写
<input value="张三">,但记得加name,否则提交时字段可能丢失 - 动态场景:用 JS 设置更安全,比如
document.getElementById("name").value = "张三",避免硬编码污染 HTML - 关键区别:
placeholder不参与表单序列化;value会作为实际提交值,且影响input的validity.valid状态
移动端输入框里 placeholder 消失或错位?
iOS Safari 和部分安卓 WebView 对 placeholder 渲染有 bug,尤其在缩放、横屏切换或使用 font-size 小于 16px 时容易消失或截断。
- 强制最小字号:
input { font-size: 16px; }(iOS 默认禁用小于 16px 的字体缩放) - 避免对
input设line-height过小,否则 placeholder 垂直居中异常 - 不用
transform: scale()缩放整个 input,会破坏 placeholder 定位
placeholder,后者用 value,混着用反而让验证逻辑和用户体验都变糟。前端入门到VUE实战笔记:立即使用
在学习笔记中,你将探索 前端 的入门与实战技巧!










