HTML&CSS:超好看的动态卡片边角丝带特效

0 阅读2分钟

这段代码是一个 HTML 页面,它包含了 CSS 样式,用于创建一个具有动态效果的边角丝带卡片,当鼠标悬停在卡片上时,卡片会缩小。

演示效果

HTML&CSS

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>公众号关注:前端Hardy</title>
    <style>
        body {
            margin: 0;
            padding: 0;
            background: #212121;
            display: flex;
            align-items: center;
            justify-content: center;
            height: 100vh;
        }

        .container {
            display: flex;
            align-items: center;
            justify-content: center;
        }

        .card_box {
            width: 200px;
            height: 250px;
            border-radius: 20px;
            background-image: linear-gradient(43deg, #4158D0 0%, #C850C0 46%, #FFCC70 100%);
            position: relative;
            box-shadow: 0 25px 50px rgba(0, 0, 0, 0.55);
            cursor: pointer;
            transition: all .3s;
        }

        .card_box:hover {
            transform: scale(0.9);
        }

        .card_box span {
            position: absolute;
            overflow: hidden;
            width: 150px;
            height: 150px;
            top: -10px;
            left: -10px;
            display: flex;
            align-items: center;
            justify-content: center;
        }

        .card_box span::before {
            content: '我的相册';
            position: absolute;
            width: 150%;
            height: 40px;
            background-image: linear-gradient(45deg, #ff6547 0%, #ffb144 51%, #ff7053 100%);
            transform: rotate(-45deg) translateY(-20px);
            display: flex;
            align-items: center;
            justify-content: center;
            color: #fff;
            font-weight: 600;
            letter-spacing: 0.1em;
            text-transform: uppercase;
            box-shadow: 0 5px 10px rgba(0, 0, 0, 0.23);
        }

        .card_box span::after {
            content: '';
            position: absolute;
            width: 10px;
            bottom: 0;
            left: 0;
            height: 10px;
            z-index: -1;
            box-shadow: 140px -140px #cc3f47;
            background-image: linear-gradient(45deg, #FF512F 0%, #F09819 51%, #FF512F 100%);
        }
    </style>
</head>

<body>
    <div class="container">
        <div class="card_box">
            <span></span>
        </div>
    </div>
</body>

</html>

HTML 结构

  • container: 创建一个类名为“container”的 div 元素,用于包含卡片。
  • card_box: 创建一个类名为“card_box”的 div 元素,用于显示卡片。
  • span: 创建一个空的 span 元素,用于显示“Premium”标签。

CSS 样式

  • body: 设置页面的边距、填充、背景色、显示方式和高度。
  • .container: 设置容器的样式,包括显示方式和对齐。
  • .card_box: 设置卡片的样式,包括尺寸、背景渐变、边框半径、位置、阴影和鼠标指针样式。
  • .card_box:hover: 设置鼠标悬停在卡片上时的变换效果,使卡片缩小。
  • .card_box span: 设置 span 元素的样式,包括位置、尺寸、显示方式和对齐。
  • .card_box span::before: 设置“标题”标签的样式,包括内容、位置、尺寸、背景渐变、变换、显示方式、对齐、颜色、字体权重、字母间距和文本转换。
  • .card_box span::after: 设置一个装饰性的伪元素,用于创建卡片左下角的阴影效果。