0

0

CSS伪类:placeholder-shown应用_占位符显示时的交互逻辑

P粉602998670

P粉602998670

发布时间:2026-02-24 14:24:11

|

724人浏览过

|

来源于php中文网

原创

:placeholder-shown 伪类用于为 placeholder 正在显示的 或 添加状态样式,需配合原生 placeholder 属性使用,不支持 ie,safari 存在渲染延迟,不可与 ::placeholder 嵌套,且 type 属性兼容性需注意。

css伪类:placeholder-shown应用_占位符显示时的交互逻辑

input元素placeholder显示时怎么加样式

直接用 :placeholder-shown 伪类就行,但它只对 <input><textarea></textarea> 生效,且必须是原生 placeholder 属性触发的占位符(不是 JS 模拟的)。

常见错误是写成 ::placeholder —— 那是改占位符文字样式的,而 :placeholder-shown 是给整个输入框加“当前 placeholder 正在显示”这个状态的样式。

  • 必须配合 placeholder 属性存在才触发,空值或没设该属性时伪类不匹配
  • IE 完全不支持,Edge 16+ 才开始支持,Safari 9.1+ 支持但有渲染延迟问题
  • 不能链式写成 input:placeholder-shown:focus,因为 placeholder 隐藏后状态就断了;想同时处理聚焦+占位符显示,得用 JS 监听 input 事件判断值是否为空

:placeholder-shown和:focus一起用会失效吗

不会失效,但逻辑容易错:当用户点击输入框,:focus 立刻生效,而 :placeholder-shown 在输入前仍为真,两者可以共存。但一旦用户开始输入,:placeholder-shown 就立刻移除。

典型场景是做“浮动标签”(label 从顶部滑下来),需要同时满足“有焦点”且“值为空”——这时候仅靠 CSS 不够,得补 JS:

立即学习前端免费学习笔记(深入)”;

Play.ht
Play.ht

根据文本生成多种逼真的语音

下载
input.addEventListener('input', () => {
  input.classList.toggle('has-value', input.value !== '');
});
  • CSS 中写 input:focus + label, input.has-value + label { transform: translateY(-20px); }
  • 纯 CSS 方案里,input:focus:placeholder-shown + label 能覆盖“刚聚焦还没输”的瞬间,但输完再删空,:placeholder-shown 才回来,中间有状态空档
  • 移动端 Safari 对快速聚焦-失焦的 :placeholder-shown 切换响应滞后,视觉上会闪一下

为什么加了:placeholder-shown却没反应

大概率是选择器权重或匹配条件没满足。最常踩的三个坑:

  • 写了 div input:placeholder-shown 却忘了父容器没设 display: block 或高度,导致子元素根本不可见
  • 用了 type="number"type="email",某些浏览器(如旧版 Chrome)在这些类型上不触发 :placeholder-shown,换成 type="text" 测试一下就能确认
  • CSS 文件里有语法错误(比如漏了分号、括号不闭合),导致整条规则被浏览器忽略——打开 DevTools 的 Styles 面板,看这条规则是否出现在 computed 样式里

和::placeholder混用要注意什么

:placeholder-shown 控制的是“输入框本身”,::placeholder 控制的是“占位符文字”,二者定位完全不同,但经常要协同使用。

比如想让 placeholder 显示时边框变浅,文字变灰:

input:placeholder-shown {
  border-color: #ddd;
}
input::placeholder {
  color: #999;
}
  • ::placeholder 在 Firefox 里叫 ::-moz-placeholder,需要单独兼容;而 :placeholder-shown 所有现代浏览器都统一用标准写法
  • 如果给 input:placeholder-shown::placeholder 加样式,部分浏览器(如 Safari)会忽略——不要嵌套写,分开声明更稳
  • 动画慎用:在 :placeholder-shown 上加 transition 没问题,但 ::placeholder 的颜色过渡在 iOS 上基本不生效

真正麻烦的是 placeholder 显示逻辑本身依赖浏览器实现细节:比如 Safari 在 input 失去焦点后,若值为空,会延迟几十毫秒才重新应用 :placeholder-shown,这时候 JS 如果立刻读 matches(':placeholder-shown') 就可能拿到 false。

热门AI工具

更多
DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

豆包大模型
豆包大模型

字节跳动自主研发的一系列大型语言模型

通义千问
通义千问

阿里巴巴推出的全能AI助手

腾讯元宝
腾讯元宝

腾讯混元平台推出的AI助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

更多
chrome什么意思
chrome什么意思

chrome是浏览器的意思,由Google开发的网络浏览器,它在2008年首次发布,并迅速成为全球最受欢迎的浏览器之一。本专题为大家提供chrome相关的文章、下载、课程内容,供大家免费下载体验。

982

2023.08.11

chrome无法加载插件怎么办
chrome无法加载插件怎么办

chrome无法加载插件可以通过检查插件是否已正确安装、禁用和启用插件、清除插件缓存、更新浏览器和插件、检查网络连接和尝试在隐身模式下加载插件方法解决。更多关于chrome相关问题,详情请看本专题下面的文章。php中文网欢迎大家前来学习。

801

2023.11.06

edge是什么浏览器
edge是什么浏览器

Edge是一款由Microsoft开发的网页浏览器,是Windows 10操作系统中默认的浏览器,其目标是提供更快、更安全、更现代化的浏览器体验。本专题为大家提供edge浏览器相关的文章、下载、课程内容,供大家免费下载体验。

1595

2023.08.21

IE浏览器自动跳转EDGE如何恢复
IE浏览器自动跳转EDGE如何恢复

ie浏览器自动跳转edge的解决办法:1、更改默认浏览器设置;2、阻止edge浏览器的自动跳转;3、更改超链接的默认打开方式;4、禁用“快速网页查看器”;5、卸载edge浏览器;6、检查第三方插件或应用程序等等。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

393

2024.03.05

如何解决Edge打开但没有标题的问题
如何解决Edge打开但没有标题的问题

若 Microsoft Edge 浏览器打开后无标题(窗口空白或标题栏缺失),可尝试以下方法解决: 重启 Edge:关闭所有窗口,重新启动浏览器。 重置窗口布局:右击任务栏 Edge 图标 → 选择「最大化」或「还原」。 禁用扩展:进入 edge://extensions 临时关闭插件测试。 重置浏览器设置:前往 edge://settings/reset 恢复默认配置。 更新或重装 Edge:检查最新版本,或通过控制面板修复

1006

2025.04.24

js正则表达式
js正则表达式

php中文网为大家提供各种js正则表达式语法大全以及各种js正则表达式使用的方法,还有更多js正则表达式的相关文章、相关下载、相关课程,供大家免费下载体验。

524

2023.06.20

js获取当前时间
js获取当前时间

JS全称JavaScript,是一种具有函数优先的轻量级,解释型或即时编译型的编程语言;它是一种属于网络的高级脚本语言,主要用于Web,常用来为网页添加各式各样的动态功能。js怎么获取当前时间呢?php中文网给大家带来了相关的教程以及文章,欢迎大家前来学习阅读。

474

2023.07.28

js 字符串转数组
js 字符串转数组

js字符串转数组的方法:1、使用“split()”方法;2、使用“Array.from()”方法;3、使用for循环遍历;4、使用“Array.split()”方法。本专题为大家提供js字符串转数组的相关的文章、下载、课程内容,供大家免费下载体验。

638

2023.08.03

苹果官网入口与在线访问指南_中国站点快速直达与iPhone查看方法
苹果官网入口与在线访问指南_中国站点快速直达与iPhone查看方法

本专题汇总苹果官网最新可用入口及中国站点访问方式,涵盖官网直达链接、iPhone官方页面查看方法与常见访问说明,帮助用户快速进入苹果官方网站,便捷了解产品信息与官方服务。

7

2026.02.24

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Sass 教程
Sass 教程

共14课时 | 0.9万人学习

Bootstrap 5教程
Bootstrap 5教程

共46课时 | 3.4万人学习

CSS教程
CSS教程

共754课时 | 35.7万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号