当前位置: 首页 > article >正文

CSS3实现的账号密码输入框提示效果

以下是通过CSS3实现输入框提示效果的常用方法,包含浮动标签和动态提示两种经典实现方案:

一、浮动标签效果

<div class="input-group"><input type="text" required><label>用户名</label>
</div><style>
.input-group {position: relative;margin: 20px;
}input {width: 100%;padding: 10px;border: 2px solid #ccc;border-radius: 4px;transition: border-color 0.3s;
}input:focus {outline: none;border-color: #2196F3;
}label {position: absolute;left: 10px;top: 50%;transform: translateY(-50%);color: #999;pointer-events: none;transition: 0.3s;
}input:focus + label,
input:valid + label {top: -10px;left: 5px;font-size: 12px;color: #2196F3;background: white;padding: 0 5px;
}
</style>

二、动态提示效果

<input type="password" placeholder=" "> <!-- 留空占位符 -->
<div class="hint">请输入6-20位字符</div><style>
input {width: 100%;padding: 12px;border: 1px solid #ddd;transition: 0.3s;
}input:focus {border-color: #4CAF50;box-shadow: 0 0 8px rgba(76,175,80,0.3);
}/* 自定义占位符效果 */
input::placeholder {color: transparent;
}.hint {position: absolute;opacity: 0;transform: translateY(10px);transition: 0.3s;color: #666;font-size: 12px;
}input:focus ~ .hint {opacity: 1;transform: translateY(5px);
}
</style>

三、验证状态反馈

/* 有效状态 */
input:valid {border-color: #4CAF50;
}/* 无效状态 */
input:invalid {border-color: #f44336;animation: shake 0.3s;
}@keyframes shake {0%, 100% { transform: translateX(0); }25% { transform: translateX(5px); }75% { transform: translateX(-5px); }
}

关键实现原理:

  1. 使用:focus伪类控制聚焦状态样式
  2. 通过transition实现平滑动画过渡
  3. 利用相邻兄弟选择器(+)和通用兄弟选择器(~)关联提示元素
  4. :valid:invalid伪类实现自动验证反馈
  5. 绝对定位实现标签位置变换
  6. 透明占位符配合自定义提示布局

这些方案无需JavaScript即可实现动态交互效果,具有以下优势:

  • 提升表单可用性
  • 增强视觉引导
  • 即时反馈输入状态
  • 减少页面跳跃感
  • 兼容现代浏览器(需加前缀适配旧版)
http://www.lryc.cn/news/2395571.html

相关文章:

  • 沉浸式 VR 汽车之旅:汽车虚拟展厅与震撼试驾体验
  • 低秩矩阵、奇异值矩阵和正交矩阵
  • CS144 - LAB0
  • 论文浅尝 | 将复杂知识图谱问答对齐为约束代码生成(COLING2025)
  • 【Linux命令】scp远程拷贝
  • Golang|分布式搜索引擎中所使用到的设计模式
  • Ubuntu22.04通过命令行安装qt5
  • 【仿生机器人】仿生机器人系统架构设计2.0——具备可执行性
  • STM32:ESP8266 + MQTT 云端与报文全解析
  • HTML5 Canvas 星空战机游戏开发全解析
  • 箱式不确定集
  • 内存管理 : 04段页结合的实际内存管理
  • 不使用绑定的方法
  • Spring Boot 中的 Web 应用与 Reactive Web 应用
  • 基于 stm32 的农用车控制系统设计
  • vue3: baidusubway using typescript
  • Redis最佳实践——性能优化技巧之集群与分片
  • vue或者前端适配makedown推荐开源依赖
  • 打打基础 | 从翻转链表到寄存器、汇编与内存
  • 深入解析 Dotnet-Boxed.Framework:提升 .NET 开发效率的利器
  • 常见相机的ISP算法
  • 2024 CKA模拟系统制作 | Step-By-Step | 8、题目搭建-创建 Ingress
  • OldRoll复古胶片相机:穿越时光,定格经典
  • 通俗易懂的 JS DOM 操作指南:从创建到挂载
  • CSS Day07
  • 爬虫框架:scrapy使用心得
  • RV1126-OPENCV 交叉编译
  • 【深度学习】 19. 生成模型:Diffusion Models
  • JMeter 直连数据库
  • 易路 iBuilder:解构企业 AI 落地困境,重构智能体时代生产力范式