新闻中心
如何通过css伪类与伪元素制作悬停动画
利用:hover触发状态变化,结合::before/::after创建视觉层,通过transition和transform实现平滑动画,如背景色渐变、滑入遮罩、上浮下划线等效果,关键在于伪元素content设置与定位上下文控制。

通过CSS伪类与伪元素制作悬停动画,可以实现视觉上更丰富且交互性强的效果。核心思路是利用 :hover 伪类触发状态变化,结合伪元素(如 ::before 或 ::after)创建额外的视觉层,再用 transition 或 transform 实现平滑动画。
使用 :hover 触发动画
:hover 是最常见的伪类之一,用于定义鼠标悬停时的样式。配合 transition 可以让属性变化更柔和。
示例:背景色渐变当用户将鼠标移到按钮上时,背景色从透明变为蓝色,过渡时间为0.3秒。
.button {
padding: 10px 20px;
background-color: transparent;
color: #333;
border: 2px solid #333;
transition: background-color 0.3s ease;
}
<p>.button:hover {
background-color: #007bff;
color: white;
}</p>用 ::before 或 ::after 制作遮罩或装饰效果
伪元素 ::before 和 ::after 能在元素前后插入内容,常用于添加图标、边框或遮罩层。结合定位和透明度控制,可做出滑入、浮现等动画。
青泥AI
青泥学术AI写作辅助平台
360
查看详情
示例:悬停时从左滑入背景条使用 ::after 创建一个隐藏的色块,悬停时向右展开。
.hover-注意: 父元素需设置 position: relative,确保伪元素定位正确。slide::after { content: ''; position: absolute; left: 0; bottom: 0; width: 0; height: 3px; background-color: #007bff; transition: width 0.4s ease; } <p>.hover-slide:hover::after { width: 100%; }</p>
结合 transform 实现位移动画
利用 transform 配合 opacity,可以让伪元素“飞入”或“淡入”,视觉冲击更强。
示例:文字下方出现上浮下划线
.underline-effect {
position: relative;
display: inline-block;
padding: 8px 0;
}
<p>.underline-effect::before {
content: '';
position: absolute;
left: 50%;
bottom: 0;
width: 0;
height: 2px;
background-color: #007bff;
transform: translateX(-50%);
transition: width 0.3s ease;
}</p><p>.underline-effect:hover::before {
width: 100%;
}</p>增强版: 加入 Y 轴位移,让线条从下方“弹起”:
.underline-effect::before {
/* 其他样式 */
transform: translateX(-50%) translateY(2px);
opacity: 0;
}
<p>.underline-effect:hover::before {
width: 100%;
opacity: 1;
transform: translateX(-50%) translateY(0);
transition: all 0.3s ease;
}</p>基本上就这些。关键是理解 :hover 控制状态,伪元素扩展视觉表现,transition 和 transform 让动画自然。不复杂但容易忽略细节,比如伪元素默认不显示(需设 content),以及定位上下文的建立。
以上就是如何通过css伪类与伪元素制作悬停动画的详细内容,更多请关注其它相关文章!
# 中文网
# 温州抖音营销推广怎么做
# 淘宝广告模板网站推广
# 台湾矿车推广网站
# 互联网seo是什么
# 安徽镇江seo
# 互联网营销推广书
# 达州做优化网站哪个公司
# 长沙定制网站推广平台
# 江苏营销推广剪辑招聘
# 惠东网站优化推广
# css
# 相关文章
# 能在
# 选择器
# 两种类型
# 中不
# 滑入
# 下划线
# 背景色
# 鼠标
# 伪元素
相关栏目:
【
科技资讯46185 】
【
网络学院92790 】
相关推荐:
包子漫画官方网站阅读入口-包子漫画在线漫画官网直达链接
Pandas DataFrame 高效批量赋值:告别循环与笛卡尔积误区
为什么我的微信朋友圈看不到别人的更新_微信朋友圈更新显示异常解决方法
如何在J*a中使用Locale处理多语言环境
谷歌浏览器一键优化方案_谷歌浏览器直达主页极速不卡版
如何仅使用CSS更改登录界面背景图像图标的颜色
在J*a中如何使用Exception包装底层异常_异常包装与信息传递方法说明
一加Ace 6T实拍样张首次公布!李杰:主摄实力完全看齐4K档性能旗舰
微信客户端如何收红包_微信客户端接收红包使用教程
如何使用CaptainHook和Composer管理Git钩子_在提交前自动运行代码检查的Composer配置
PHP 枚举:根据字符串获取枚举案例的策略与实现
uc浏览器网页版极速入口 uc网页浏览器网页版流畅体验
J*a TimerTask中HashMap意外清空的深层原因与解决方案
C++20的source_location是什么_C++在编译期获取源码位置信息用于日志和断言
2026春节假期票务安排_2026春节放假购票指南
J*aScript生成器_j*ascript异步迭代
css子元素高度不一致导致布局错位怎么办_使用align-items:stretch解决高度差异
微信网页版官方快速登录入口 微信网页版网页版账号直达
怎样使用“本地安全策略”提升Windows安全性_Secpol.msc配置指南【高手】
sublime如何优雅地处理行尾空格_sublime自动清理多余空白字符配置
微博网页版官方账号登录 微博网页版内容浏览使用指南
可靠CSGO开箱平台解析 CSGO开箱网合集
抖音从哪里进入网页版_抖音官方入口链接
Composer的 "conflict" 字段有什么用_如何声明不兼容的包以避免依赖冲突
痛风发作了怎么办? 快速止痛和后期饮食调理
Composer的 archive 命令怎么用_快速打包你的PHP项目及其Composer依赖
PDO预处理语句中冒号的正确处理:区分SQL函数格式与命名占位符
AO3网页版合集入口 Archive of Our Own同人作品浏览指南
正确连接J*aScript到HTML实现可点击图片与自定义事件处理
漫蛙官网正版漫画入口 漫蛙2官方网页登录地址
CKEditor 5 自定义构建在React应用中渲染失败的调试与解决
现代化 SciPy 一维插值:interp1d 的替代方案与最佳实践
React Router v6 教程:构建认证保护的私有路由与重定向策略
知乎APP怎么管理已购盐选内容_知乎APP盐选内容购买记录与查看方法
sublime如何只显示或隐藏特定类型文件_sublime侧边栏文件过滤
谷歌浏览器怎么给标签页静音_Chrome标签静音快捷操作
Tabulator表格中精确实现日期时间排序的指南
J*a里如何实现订单支付与库存同步功能_支付库存同步项目开发方法说明
Word2013如何插入视频和音频媒体_Word2013媒体插入的多媒体支持
sublime怎么覆盖插件的默认快捷键_sublime快捷键优先级与设置
Golang如何实现简单的Web表单_Golang表单提交与验证处理方法
NRF24L01数据传输深度解析:解决大载荷接收异常与分包策略
React/Next.js中实现列表项的动态移动与状态管理:兼论唯一键的重要性
GemBox Document HTML转PDF垂直文本渲染问题及解决方案
马斯克:Optimus 人形机器人复数形式为 Optimi
Django表单提交验证失败后保持字段值不刷新
126邮箱账号注册 电脑版登录入口
J*a递归快速排序中静态变量的状态管理与陷阱
解决macOS Tkinter应用双击启动崩溃:PyInstaller打包指南
顺丰快件物流信息 官方网站查询入口


2025-10-08
浏览次数:次
返回列表
slide::after {
content: '';
position: absolute;
left: 0;
bottom: 0;
width: 0;
height: 3px;
background-color: #007bff;
transition: width 0.4s ease;
}
<p>.hover-slide:hover::after {
width: 100%;
}</p>