必须写全四套前缀(::-webkit-input-placeholder、::-moz-placeholder、:-ms-input-placeholder、::placeholder)并置于最后,且仅支持color、font-size等文本属性;漏前缀、未设placeholder属性、被重置样式覆盖或选择器权重不足均会导致失效。

::placeholder 伪元素能改 placeholder 样式,但必须写全四套浏览器前缀,且只支持 color、font-size 等有限属性;漏一个前缀或错用属性,样式就“消失”。
如果你了解HTML,CSS和JavaScript,您已经拥有所需的工具开发Android应用程序。本动手本书展示了如何使用这些开源web标准设计和建造,可适应任何Android设备的应用程序 - 无需使用Java。您将学习如何创建一个在您选择的平台的Android友好的网络应用程序,然后转换与自由PhoneGap框架到一个原生的Android应用程序。了解为什么设备无关的移动应用是未来的潮流,并开始构建应用程序,提供更
为什么写了 ::placeholder 却没效果?
最常见原因不是语法错,而是:
- 没写 placeholder="xxx" 属性,::placeholder 就没东西可渲染
- 缺少任意一套前缀(比如漏了 input::-moz-placeholder),Firefox 里直接回退默认灰黑色
- 全局重置样式(如 Normalize.css)已把 ::placeholder 设为 color: transparent 或 opacity: 0,把你写的规则盖掉了
- 选择器权重不够:只写 ::placeholder 会被 input::placeholder 或更长的选择器覆盖
- Safari ≤15.3 只认 ::-webkit-input-placeholder,标准写法完全无效
怎么写才真正兼容所有主流环境?
必须四套写全,且顺序合理(旧规则在前,新规则在后):
- input::-webkit-input-placeholder(Chrome ≤56 / Safari ≤15.3 / Opera)
- input::-moz-placeholder(Firefox 19+;注意:不是 :-moz-placeholder,那是 Firefox 18 及更早)
- input:-ms-input-placeholder(IE 10–11)
- input::placeholder(Chrome 57+ / Firefox 51+ / Safari 15.4+ / Edge 79+)
用逗号合并可减少重复,例如:
input::placeholder,<br>input::-webkit-input-placeholder,<br>input::-moz-placeholder,<br>input:-ms-input-placeholder {<br> color: #777;<br> font-size: 14px;<br> opacity: 1;<br>}
opacity: 1 很关键——Firefox 默认设为 0.53,不重置就会发虚哪些 CSS 属性能用?哪些一设就白费?
::placeholder 不是普通元素,浏览器只允许它响应部分文本类属性:
✅ 安全可用:color、font-size、font-family、font-weight、opacity、text-transform、letter-spacing
❌ 设了也无效(静默丢弃,不报错):background、padding、margin、border、width、height、display、content
⚠️ 特别注意:line-height 单独写无效,得塞进 font 简写里,例如:font: 14px/1.4 "Segoe UI", sans-serif
聚焦时想隐藏 placeholder 怎么办?
别用 :focus::placeholder 加 color: transparent 这种方式——它在 IE 和旧 Edge 中行为不稳定,还可能干扰可访问性。
更稳妥的做法是:
- 保持 placeholder 语义清晰,不强行隐藏
- 如确有视觉需求,优先用 opacity: 0(比 color: transparent 更可控)
- 避免在 :focus::placeholder 里设 background 或 padding,这些属性本就不支持,加了反而误导调试方向
- 如果项目要兼容 IE11,CSS 方案彻底失效,只能用 JS 模拟占位逻辑(读取 getAttribute('placeholder'),动态插入 label 并控制显隐)
真正麻烦的从来不是写几行 CSS,而是确认当前项目实际要覆盖的最低浏览器版本、检查是否被已有样式链意外重置、以及在深色模式或高对比度设置下是否还能保持可读性——这些细节不验证到真实环境里,光靠本地 Chrome 是看不出问题的。
前端入门到VUE实战笔记:立即使用
在学习笔记中,你将探索 前端 的入门与实战技巧!










