You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

无required属性的input输入后失焦浮动标签复位如何用CSS解决

解决方案

你可以借助CSS的:placeholder-shown伪类实现需求,无需添加required属性,也无需引入JavaScript代码。

实现步骤

  • 给<input>标签添加placeholder属性,值设为一个空格即可,不会展示额外的占位符内容
  • 调整浮动标签的CSS匹配规则,同时覆盖「聚焦时」和「已输入内容时」两种场景

修改后代码

HTML代码

<div class="user-input-wrp">
    <br>
    <input id="name" type="text" name="name" class="inputText" placeholder=" "/>
    <span class="floating-label">Name</span>
</div>

CSS修改部分

仅需要调整原有浮动标签激活规则的选择器即可,其余样式无需改动:

.user-input-wrp input:focus~.floating-label,
.user-input-wrp input:not(:placeholder-shown)~.floating-label{
    top: 0px;
    left: 0px;
    font-size: 13px;
    opacity: 1;
    font-weight: lighter;
    color: #c57c49;
}

实现原理

:placeholder-shown伪类仅会在<input>存在placeholder属性、且用户未输入任何内容时触发匹配,反向选择器:not(:placeholder-shown)就代表用户已经输入了内容,该规则的匹配逻辑和required属性无关,刚好匹配你的需求。
该特性兼容性覆盖所有现代浏览器,可直接在生产环境使用。

内容的提问来源于stack exchange,提问作者Stacks Queue

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.19 05:06:11