css卡片,重叠div,顶部错开,底部对齐

CSS transform 属性实现的叠加长方形效果。通过设置统一的底部中心作为变换原点,并为每个长方形分配细微偏差的倾斜角度,可以完美实现你描述的"底部对齐、顶部错开"的视觉感。

核心代码

css 复制代码
transform-origin: bottom center;
transform: skewX(-8deg); 

html示例

xml 复制代码
<!DOCTYPE html>

<html lang="zh-CN">

<head>

    <meta charset="UTF-8">

    <meta name="viewport" content="width=device-width, initial-scale=1.0">

    <title>叠加长方形错开效果</title>

    <style>

        :root {

            --bg-color: #f0f2f5;

            --rect-width: 160px;

            --rect-height: 240px;

            --transition-curve: cubic-bezier(0.15, 0.8, 0.15, 1);

        }

  


        body {

            margin: 0;

            height: 100vh;

            display: flex;

            justify-content: center;

            align-items: center;

            background-color: var(--bg-color);

            font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;

        }

  


        .stage {

            position: relative;

            width: var(--rect-width);

            height: var(--rect-height);

            /* 底部对齐容器 */

            display: flex;

            justify-content: center;

            align-items: flex-end;

        }

  


        .rect {

            position: absolute;

            bottom:0;

            width: 100%;

            height: 100%;

            border-radius: 12px;

            box-shadow: 0 10px 30px rgba(0, 0, 0, 0.1);

           

            /* 核心逻辑:以底部中心为旋转/倾斜基点 */

            transform-origin: bottom center;

           

            /* 动画过渡 */

            transition: transform 0.4s var(--transition-curve),

                        filter 0.3s ease,

                        background-color 0.3s ease;

           

            display: flex;

            justify-content: center;

            align-items: center;

            font-weight: bold;

            color: white;

            font-size: 1.2rem;

            border: 2px solid rgba(255, 255, 255, 0.2);

        }

  


        /* 底部层:最左偏 */

        .rect-1 {

            top:-5px;

            background-color: red;

            transform: skewX(3deg);

            z-index: 1;

        }

  


        /* 中间层:轻微倾斜 */

        .rect-2 {

            top:-8px;

            background-color: #8b5cf6;

            transform: skewX(-3deg);

            z-index: 2;

        }

  


        /* 顶层:接近垂直 */

        .rect-3 {

            background-color: #ec4899;

            transform: skewX(0deg);

            z-index: 3;

        }

  


        /* 交互效果:鼠标悬停时展开 */

        .stage:hover .rect-1 {

            transform: skewX(-15deg) translateX(-20px);

            filter: brightness(0.9);

        }

  


        .stage:hover .rect-2 {

            transform: skewX(-5deg);

        }

  


        .stage:hover .rect-3 {

            transform: skewX(5deg) translateX(20px);

            filter: brightness(1.1);

        }

  


        .hint {

            position: absolute;

            bottom: -60px;

            color: #666;

            font-size: 0.9rem;

            text-align: center;

            width: 200px;

        }

    </style>

</head>

<body>

  


    <div class="stage">

        <div class="rect rect-1">底层</div>

        <div class="rect rect-2">中层</div>

        <div class="rect rect-3">顶层</div>

       

        <div class="hint">将鼠标悬停在长方形上查看动态错开</div>

    </div>

  


</body>

</html>
相关推荐
里欧跑得慢4 小时前
Flutter主题与样式详解
前端·css·flutter·web
toooooop84 小时前
智慧文旅数字人体验平台demo html
css·css3
yume_sibai8 小时前
CSS2 核心知识点完全总结(选择器 + 三大特性 + 常用属性)
前端·css
小刘在重生~10 小时前
Web 前端基础|HTML+CSS+JavaScript+Bootstrap
前端·css·html
吴长建先生重名了10 小时前
如何撩妹子实战:搞定StackTrace,面试必问的底层逻辑
css
是立不是利10 小时前
第二篇:CSS 与用户体验——看不见的设计
前端·css·ux
神膘护体小月半13 小时前
mask 渐变遮罩属性
前端·css·css3
用户8508692761513 小时前
ecstore新手避坑指南:从零搭建电商项目实战
css
是立不是利1 天前
写给设计师的 CSS 博客美学指南
前端·css
labixiong1 天前
CSS 锚点定位实测:零 JS 实现气泡跟随,自动翻转很香但暗藏 3 个致命坑
前端·css