placeholder 是 html 表单控件的原生属性,仅对 input(非 hidden/button/submit)和 textarea 有效,不支持 select 或 div/span 等标签;它仅作展示,不影响 required 校验,不可替代 label 或 value,样式需用 ::placeholder 伪元素控制,且无障碍支持弱,不能代替语义化 label。

placeholder 属性写在 input 或 textarea 里才生效
placeholder 不是独立组件,也不是 JS 方法,它只是 HTML 表单控件的原生属性。写在 <div>、<code><span></span> 或自定义标签上完全没用,浏览器会直接忽略。
- 只支持
<input>(type不为hidden、button、submit等)和<textarea></textarea> -
<select></select>不支持 placeholder;想实现类似效果得用 JS 模拟或加一个带disabled的首选项 - 如果用了 Web Component 封装输入框,要确保内部透传
placeholder到真实<input>上
placeholder 文本不会触发 required 校验
placeholder 是纯展示文案,跟表单验证逻辑完全无关。用户没输内容但 placeholder 还在,required 依然会报错 —— 这不是 bug,是设计如此。
- placeholder 不算「已填写」,清空输入框后提交,
required仍会拦截 - 别用 placeholder 替代默认值;需要预填内容请用
value(input)或innerHTML(textarea) - 若想“占位文本 + 可提交”,得配合 JS 监听
input或blur事件做状态管理
placeholder 样式只能用 ::placeholder 伪元素控制
它的颜色、字体、透明度等无法通过普通 CSS 类直接设置,必须用标准伪元素选择器,且各浏览器前缀不统一。
- 现代写法:用
::placeholder(Chrome 57+、Firefox 51+、Safari 10.1+) - 兼容旧版需补全:
::-webkit-input-placeholder、::-moz-placeholder、:-ms-input-placeholder - 注意:
::placeholder不能继承父级 font-size,必须显式声明;opacity 默认是 0.5 左右,容易看不清
placeholder 在无障碍访问中容易被忽略
屏幕阅读器对 placeholder 的支持很弱:多数只读一次,焦点移入后就不再播报,也无法作为 label 的替代项。
本文档主要讲述的是Python开发网站指南;HTML是网络的通用语言,一种简单、通用的全置标记语言。它允许网页制作人建立文本与图片相结合的复杂页面,这些页面可以被网上任何其他人浏览到,无论使用的是什么类型的电脑或浏览器 Python和其他程序语言一样,有自身的一套流程控制语句,而且这些语句的语法和其它程序语言类似,都有for, if ,while 类的关键字来表达程序流程。希望本文档会给有需要的朋友带来帮助;感兴趣的朋友可以过来看看
立即学习“前端免费学习笔记(深入)”;
- WCAG 要求每个表单控件必须有可编程关联的 label,
<label for="xxx"></label>或包裹写法 - placeholder 不能代替
<label></label>,否则视障用户可能根本不知道这个框要填什么 - 如果 UI 真没空间放 visible label,至少用
aria-label或aria-labelledby补充语义
最常被漏掉的是语义缺失——placeholder 看得见,但对依赖语音或键盘导航的用户来说,它基本等于不存在。










