placeholder是HTML表单控件的临时提示文本属性,仅在字段为空且未聚焦或失焦时显示,不参与提交、不设默认值、不支持HTML标签、无障碍支持弱,需用value预填数据、label说明用途,样式需加厂商前缀,动态修改建议用data属性+伪元素替代。

placeholder 是 HTML 表单控件(如 、)的原生属性,用来显示一段**临时提示文本**,仅在字段为空且未获得焦点、或获得焦点后又失去焦点时可见。
它不是默认值,也不参与表单提交
很多人误以为设置 placeholder="邮箱" 就等于设了默认内容——其实不是。它不改变 value,用户一输入就消失,提交时也完全不会被发送。如果你需要预填数据,请用 value 属性;如果想引导用户理解字段用途,请配一个 元素。
-
placeholder文本纯属视觉提示,无障碍支持弱(屏幕阅读器不一定读出) - 它不支持 HTML 标签,写
邮箱会原样显示为字符串 - 移动端要注意:某些 iOS 版本下,若
font-size过小或line-height不匹配,提示文字可能被截断或压扁
怎么自定义 placeholder 的样式?
不能直接用 .my-input::placeholder 在所有浏览器生效,得加厂商前缀:
input::placeholder {
color: #999;
}
input::-webkit-input-placeholder { /* Chrome/Edge/Safari */
color: #999;
}
input::-moz-placeholder { /* Firefox 19+ */
color: #999;
}
input:-ms-input-placeholder { /* IE 10+ */
color: #999;
}
注意:::-moz-placeholder 和 ::-ms-input-placeholder 是伪元素,但它们不继承父级字体设置,需单独声明 font-size、line-height 等。
生成可在 deepbi 沙箱 iframe 内运行或作为独立文件运行的交互式 HTML 页面,使用 `window.deepbi` JS SDK 实现数据查询、空间管理、文件浏览及用户操作。当用户提出以下需求时启用该能力: - 创建 KPI 仪表盘、数据表格、文件浏览器、成员列表、管理页面; - 明确要求“转成 dhtml”、“转译成 HTML”、“把 XX 页面转成……”、“控制台页面”、“管理后台”、“DeepBI 页面迁移”; - 提及位于 `apps/console/src/featur
为什么 placeholder 动态修改后不刷新显示?
直接 JS 赋值 input.placeholder = "新提示" 是有效的,但部分老版本 Android WebView 或旧版 Safari 可能不重绘。更稳妥的做法是切换 class:
.has-placeholder::before {
content: attr(data-placeholder);
position: absolute;
left: 8px;
color: #999;
}
然后用 JS 控制 element.dataset.placeholder = "新文本" 并切换 class。这样绕过原生渲染限制,也便于统一控制样式和响应式行为。
最常被忽略的一点:placeholder 提示文案必须足够简短,且不能承载关键操作指引(比如“密码需含大小写字母和数字”),因为它随时会消失——真正重要的规则,得放在 后面或用 辅助说明。
前端入门到VUE实战笔记:立即使用
在学习笔记中,你将探索 前端 的入门与实战技巧!










