CSS实现卡片浮动效果

效果演示

在这里插入图片描述

实现原理

给卡片添加 css3 新的过度属性(transition),鼠标移入和移出时都会触发这个过度属性,使卡片向上偏移一段距离,同时扩大卡片的背景阴影,从而实现卡片的浮动效果。

关键代码

.card-box .card {
    
    
    transition: transform .2s, box-shadow .2s;
    /* 省略部分代码 */
}
.card-box .card:hover {
    
    
    transition: transform .2s, box-shadow .2s;
    transform: translateY(-4px);
    box-shadow: 4px 4px 8px rgba(0, 0, 0, .1), -4px -4px 8px rgba(0, 0, 0, .1);
}

源代码

<!DOCTYPE html>

<head>
    <meta charset="UTF-8">
    <title>卡片浮动效果</title>
    <style>
        * {
      
      
            margin: 0;
            padding: 0;
            box-sizing: border-box;
        }
        body {
      
      
            font-size: 20px;
            background-color: #e3e3e3;
        }
        .card-box {
      
      
            display: flex;
            flex-wrap: wrap;
            justify-content: space-between;
            align-content: space-between;
            position: absolute;
            top: 50%;
            left: 50%;
            transform: translate(-50%, -50%);
            width: 40em;
            height: 22em;
            padding: 1.5em;
            background-color: #e3e3e3;
        }
        .card-box .card {
      
      
            transition: transform .2s, box-shadow .2s;
            display: flex;
            justify-content: center;
            align-items: center;
            width: 5.5em;
            height: 3.5em;
            margin-bottom: 1em;
            border-radius: .5em;
            box-shadow: 2px 2px 4px rgba(0, 0, 0, .1), -2px -2px 4px rgba(0, 0, 0, .1);
            background-color: #fff;
            color: #3e3e3e;
            font-size: 1.5em;
            font-weight: 700;
            letter-spacing: 4px;
            cursor: pointer;
        }
        .card-box .card:hover {
      
      
            transition: transform .2s, box-shadow .2s;
            transform: translateY(-4px);
            box-shadow: 4px 4px 8px rgba(0, 0, 0, .1), -4px -4px 8px rgba(0, 0, 0, .1);
        }
    </style>
</head>
<body>
    <div class="card-box">
        <div class="card"><span>富强</span></div>
        <div class="card"><span>民主</span></div>
        <div class="card"><span>文明</span></div>
        <div class="card"><span>和谐</span></div>
        <div class="card"><span>自由</span></div>
        <div class="card"><span>平等</span></div>
        <div class="card"><span>公正</span></div>
        <div class="card"><span>法治</span></div>
        <div class="card"><span>爱国</span></div>
        <div class="card"><span>敬业</span></div>
        <div class="card"><span>诚信</span></div>
        <div class="card"><span>友善</span></div>
    </div>
</body>
</html>

猜你喜欢

转载自blog.csdn.net/apple_54470279/article/details/124909901