好看的卡片动态渐变边框

[复制链接]

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×

这段代码通过 CSS 动画和伪元素创建了一个具有动态渐变背景的卡片布局,背景渐变在水平方向上循环移动,营造出一种动态的视觉效果.

演示效果


HTML&CSS

  1. <!DOCTYPE html>
  2. <html lang="en">

  3. <head>
  4.     <meta charset="UTF-8">
  5.     <meta name="viewport" content="width=device-width, initial-scale=1.0">
  6.     <title>公众号关注:前端Hardy</title>
  7.     <style>
  8.         body {
  9.             margin: 0;
  10.             padding: 0;
  11.             background: #212121;
  12.             display: flex;
  13.             align-items: center;
  14.             justify-content: center;
  15.             height: 100vh;
  16.         }
  17.         .box {
  18.             display: flex;
  19.             align-items: center;
  20.             justify-content: center;

  21.         }
  22.         .card {
  23.             width: 100px;
  24.             height: 150px;
  25.             display: flex;
  26.             align-items: center;
  27.             justify-content: center;
  28.             gap: 10px;
  29.             padding: 0px15px;
  30.             background-color: red;
  31.             border-radius: 10px;
  32.             border: none;
  33.             color: white;
  34.             position: relative;
  35.             cursor: pointer;
  36.             font-weight: 900;
  37.             transition-duration: .2s;
  38.             background: linear-gradient(0deg, #000, #272727);
  39.             margin: 020px;
  40.             font-size: 24px;
  41.         }
  42.         .card:before,
  43.         .card:after {
  44.             content: '';
  45.             position: absolute;
  46.             left: -2px;
  47.             top: -2px;
  48.             border-radius: 10px;
  49.             background: linear-gradient(45deg, #fb0094, #0000ff, #00ff00, #ffff00, #ff0000, #fb0094,
  50.                     #0000ff, #00ff00, #ffff00, #ff0000);
  51.             background-size: 400%;
  52.             width: calc(100% + 4px);
  53.             height: calc(100% + 4px);
  54.             z-index: -1;
  55.             animation: steam 20s linear infinite;
  56.         }
  57.         @keyframes steam {
  58.             0% {
  59.                 background-position: 00;
  60.             }
  61.             50% {
  62.                 background-position: 400%0;
  63.             }
  64.             100% {
  65.                 background-position: 00;
  66.             }
  67.         }
  68.         .card:after {
  69.             filter: blur(100px);
  70.         }
  71.     </style>
  72. </head>
  73. <body>
  74.     <div class="box">
  75.         <div class="card">你</div>
  76.         <div class="card">好</div>
  77.         <div class="card">吗</div>
  78.     </div>
  79. </body>
  80. </html>
复制代码

HTML 结构

    box:一个容器,用于包含卡片元素.
    card:每个 card 代表一个卡片,显示文本.

CSS 样式

    body:设置页面的边距为 0,背景颜色为深灰色(#212121),使用 flex 布局使内容垂直和水平居中,页面高度为视口高度(100vh).
    .box:定义卡片的容器,使用 flex 布局使卡片居中显示.
    .card:定义卡片的样式,包括尺寸、形状、颜色、字体等.width: 100px;和 height: 150px;:设置卡片的宽度和高度.display: flex; align-items: center; justify-content: center;:使用 flex 布局使卡片内的文本居中显示.background-color: red;:卡片的背景颜色为红色.border-radius: 10px;:卡片的圆角大小为 10 像素.color: white;:文本颜色为白色.position: relative;:相对定位,用于伪元素的绝对定位.cursor: pointer;:鼠标悬停时显示为指针,表示可点击.font-weight: 900;:字体粗细为 900,表示非常粗.transition-duration: .2s;:过渡效果持续时间为 0.2 秒.background: linear-gradient(0deg, #000, #272727);:卡片的渐变背景,从黑色到深灰色.margin: 0 20px;:卡片的左右外边距为 20 像素,使卡片之间有间隔.font-size: 24px;:文本字体大小为 24 像素.
    .card:before 和.card:after 伪元素:用于创建卡片的动态背景效果.content: '';:创建一个空的内容.position: absolute;:绝对定位,相对于卡片.background: linear-gradient(45deg, ...);:定义了一个 45 度的线性渐变背景,颜色循环变化.background-size: 400%;:背景大小为卡片的 400%,使渐变效果更明显.width: calc(100% + 4px);和 height: calc(100% + 4px);:伪元素的宽度和高度比卡片大 4 像素,以覆盖卡片的边框.z-index: -1;:将伪元素放置在卡片的下方.animation: steam 20s linear infinite;:应用了一个名为 steam 的动画,使背景渐变在 20 秒内线性循环移动.
    @keyframes steam:定义了动画的关键帧,使背景渐变在水平方向上移动.0% { background-position: 0 0; }:起始位置为背景的左上角.50% { background-position: 400% 0; }:中间位置为背景的右上角.100% { background-position: 0 0; }:结束位置回到背景的左上角.
    .card:after 的 filter: blur(100px);:对背景进行模糊处理,增加视觉效果,使背景看起来更柔和.
小时候,看腻了农村的牛和马,长大后,来到了城里,才知道原来到处都是牛马!
全部回复0 显示全部楼层
暂无回复,精彩从你开始!

快速回帖

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关于楼主

管理员
  • 主题

    899
  • 回答

    341
  • 积分

    2450
虚位以待,此位置招租

商务推广

    此位置招租 黑粉猫影院-免费看电影 此位置招租 此位置招租 此位置招租 此位置招租 此位置招租 此位置招租 此位置招租 此位置招租