新闻中心

CSS动画如何实现卡片边框动画_border-width @keyframes结合hover使用

2025-11-26
浏览次数:
返回列表
答案:通过CSS的transition和@keyframes结合伪元素实现卡片边框动态效果。1. 使用border-width与transition实现边框变粗;2. 利用伪元素和transform: scale()配合@keyframes模拟描边展开动画;3. 通过border-width从0到具体值的过渡实现边框生长效果;4. 使用多个伪元素分别控制四边,结合width/height变化实现逐边描边动画。根据需求选择合适方案。

css动画如何实现卡片边框动画_border-width @keyframes结合hover使用

想让卡片边框在鼠标悬停时产生动态效果,比如边框逐渐变粗或“描边”动画,可以通过 CSS@keyframesborder-width:hover 配合实现。下面介绍几种实用方法。

1. 边框宽度渐变动画(border-width + transition)

如果只是想让边框在 hover 时变粗,使用 transition@keyframes 更简单高效。

.card {
  width: 200px;
  height: 150px;
  border: 2px solid #007bff;
  transition: border-width 0.3s ease;
}
<p>.card:hover {
border-width: 6px; /<em> 边框变粗 </em>;/
}</p>

这种写法简洁,适合大多数场景。

2. 使用 @keyframes 实现“描边式”边框动画

如果你想做出从无到有“画出”边框的视觉效果,可以结合伪元素和 @keyframes 动画模拟描边。

.card {
  position: relative;
  width: 200px;
  height: 150px;
  background: white;
  overflow: hidden;
}
<p>.card::before {
content: '';
position: absolute;
inset: 0;
border: 2px solid transparent;
border-radius: 4px;
background: linear-gradient(45deg, #ff7a00, #e91e63) border-box;
mask: linear-gradient(#fff 0 0) padding-box, linear-gradient(#fff 0 0);
mask-composite: exclude;
-webkit-mask-composite: xor;
transform: scale(0);
transform-origin: center;
transition: transform 0.3s ease;
}</p><p>.card:hover::before {
animation: growBorder 0.6s ease forwards;
}</p><p>@keyframes growBorder {
0% {
transform: scale(0);
}
100% {
transform: scale(1);
}
}</p>

这个方法通过伪元素创建一个带渐变边框的图层,初始缩放为 0,hover 时放大显示,形成“展开”动画效果。

3. 利用 border-width 关键帧动画(直接控制宽度)

也可以直接对 border-width 使用关键帧,但需注意:CSS 不支持对 border-width 直接做动画,除非起始值是具体数字。

语鲸 语鲸

AI智能阅读辅助工具

语鲸 314 查看详情 语鲸
.card {
  width: 200px;
  height: 150px;
  border-style: solid;
  border-width: 0;
  border-color: #28a745;
  transition: border-width 0.4s ease;
}
<p>.card:hover {
border-width: 4px;
}</p>

这种方式利用了从 04px 的过渡,视觉上像是边框“生长”出来。虽然没用 @keyframes,但更稳定兼容。

4. 复杂描边动画(上下左右逐个出现)

如果要实现边框四条边依次出现的效果,可以用多个伪元素分别控制每条边。

.card {
  position: relative;
  width: 200px;
  height: 150px;
}
<p>.card::before,
.card::after {
content: '';
position: absolute;
background: #007bff;
transition: all 0.4s ease;
}</p><p>/<em> 上下横线 </em>/
.card::before {
width: 0;
height: 2px;
top: 0;
bottom: 0;
margin: auto;
left: 0;
}</p><p>/<em> 左右竖线 </em>/
.card::after {
height: 0;
width: 2px;
left: 0;
right: 0;
margin: auto;
top: 0;
}</p><p>.card:hover::before {
width: 100%;
}</p><p>.card:hover::after {
height: 100%;
}</p>

这样 hover 时,横线从中间向两边伸展,竖线从中间向上下滑动,形成十字展开再填满的描边感。

基本上就这些常用方式。根据设计需求选择:简单变粗用 border-width + transition,高级描边可用伪元素配合 @keyframestransform 模拟。关键是理解 border 本身不易动画,需要用技巧“绕开”限制。

以上就是CSS动画如何实现卡片边框动画_border-width @keyframes结合hover使用的详细内容,更多请关注其它相关文章!


# 相关文章  # 邹城市场营销推广招聘  # 亲子游泳推广营销策略  # 天河汽车seo方法分析  # 上蔡本地网络推广营销  # 跨境网站建设流程图  # 苏州网站推广源码是多少  # 乌当区花果园网站建设  # 购物网站建设的论坛  # 福建短视频营销推广技巧  # 搜索引擎网站推广怎么做  # 可以通过  # css  # 你想  # 可以用  # 鼠标  # 不均匀  # 中不  # 想让  # 多个  # 如何实现  # overflow  # css动画  # 伪元素 


相关栏目: 【 科技资讯46185 】 【 网络学院92790


相关推荐: 解决 Express.js 中 PUT 请求密码修改失败的路由配置指南  快手极速版在线观看 官方网页版登录地址  Django通过AJAX异步上传图片并保存至模型的完整指南  qq游戏大厅官方下载_qq游戏免费下载安装入口  高德地图公交到站提醒失败如何解决 高德提醒权限设置  React中useState与局部变量:理解组件状态管理与渲染机制  学习通网页版官方登录 超星学习通电脑端入口指南  解决Python单元测试中Mock异常方法调用计数为零的问题  12306几点到几点不能订票? | 官方最新系统维护时间全解析  J*aScript中高效清空DOM列表元素:解决for循环中断与任务管理问题  uc手机浏览器网页版入口 uc浏览器手机版便捷登录首页  响应式图片在网页设计中的正确实现方法  一加手机电池耗电快怎么办_一加手机电池耗电快的解决方法  包子漫画官方网站阅读入口-包子漫画在线漫画官网直达链接  AO3官方镜像站点汇总 AO3同人作品网页版直达链接  React项目中导航栏Logo自适应布局:避免裁剪与布局溢出  163邮箱官方主页登录 直达网易邮箱登录核心页面  KFC游戏互动怎么赢取优惠券_KFC线上游戏活动参与与优惠代码赢取教程  抖音商城签到领现金是真的吗_抖音商城签到奖励与提现说明  C++如何进行游戏物理模拟_使用Box2D库为C++游戏添加2D物理效果  在Typer应用中优雅地处理和重组任意命令行参数  Excel Power Pivot如何处理XML数据源 构建高级数据模型  创客贴用户入口官网登录 创客贴网页版电脑版系统  快手官方唯一登录入口 谨防山寨钓鱼网站  如何优雅地解决Livewire文件上传难题?SpatieLivewireFilepond让一切变得简单  特斯拉自动驾驶房车计划曝光 原型车将于2027年亮相  荣耀Play7T运行卡顿解决_荣耀Play7T性能优化  QQ邮箱官网登录入口 QQ邮箱网页版邮箱快速登录  C++如何实现线程池_C++11手动实现一个简单的固定大小线程池  PS5 Pro有点优势但不多! 《燕云十六声》PS5平台与PC性能画面对比  html5 app怎么运行环境_配html5 app运行环境【教程】  文本文档写html代码怎么运行_文本文档html代码运行步骤【教程】  MAC的“快捷指令”怎么同步到iPhone_MAC利用iCloud同步所有设备的自动化指令  葱吃多了会怎样 葱吃多了会伤胃吗  在Qt QML中通过Python字典动态更新TextEdit内容的教程  俄罗斯Yandex搜索引擎入口_Yandex官网免登录一键访问  解决 MongoDB 聚合查询中对象数组 _id 匹配问题  Python类型检查:优化关联可选属性的Mypy推断策略  J*a如何使用AtomicInteger控制计数_J*a无锁计数器性能分析  支付宝如何设置安全保护_支付宝安全设置的全面教程  必由学官方网站入口 必由学学生教师共用登录通道  uc浏览器网页版入口 uc浏览器网页版最新网址  蛙漫限时开放最深处链接_蛙漫全站漫画会员同款秒开地址  sublime如何配置Go语言开发环境_sublime搭建Golang编译运行系统  如何更改在 Excel 中打开超链接时的默认浏览器  TikTok国际版官网直达_TikTok国际版官网直达进入在线观看  Python自定义类排序:解决lambda键值访问TypeError的实践指南  css滚动区域卡顿如何改善_css滚动问题用will-change优化渲染  绝地鸭卫平a核爆刀流玩法攻略  智慧团建扫码登录入口 智慧团建扫码登录入口官网版​ 

搜索