温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

CSS怎么实现响应式堆叠卡片悬停效果

发布时间:2021-08-31 17:19:40 阅读:213 作者:chen 栏目:web开发
前端开发者测试专用服务器限时活动,0元免费领,库存有限,领完即止! 点击查看>>

本篇内容介绍了“CSS怎么实现响应式堆叠卡片悬停效果”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

在开始之前,我先介绍一下实现的整体大致思路:首先我们将在 HTM 中设计一个简单的卡片结构;然后将定义::before 和::after伪元素并将它们相对于父卡片绝对定位;接着使用transform属性将类“card-inner”的div从其原始位置移开;最后通过使用可以在悬停效果前后translate卡片的变换,在一堆卡片上添加悬停效果。

下面就直接上代码了!

示例代码一:

<!DOCTYPE HTML>
<html>
<head>
    <meta charset="UTF-8">
    <title></title>
    <style>
        body {
            color#FDFAF6;
            background#50CB93;
        }

        .card {
            position: relative;
            width400px;
            margin60px auto;
        }

        .card::before,
        .card::after {
            content"";
            position: absolute;
            top0;
            left0;
            width100%;
            height100%;
        }

        .card::before,
        .card::after,
        .card .card-inner {
            background-color#423F3E;
            border1px solid #01937C;
            transition: transform 0.5s;
        }

        .card::before,
        .card-inner {
            z-index1;
        }

        .card-inner {
            position: relative;
            padding4rem;
        }

        /* 将叠好的卡片放在不同的位置 */
        .cards:hover {
            transformtranslate(5px5px);
        }

        .cards:hover::before {
            transformtranslate(-5px, -5px);
        }

        .cards:hover::after {
            transformtranslate(-10px, -10px);
        }
    </style>
</head>

<body>
<center>
    <h2>欢迎来到亿速云</h2>
    <div class="card-container">
        <div class="card cards">
            <div class="card-inner">
                <h2>将鼠标移至方框内</h2>
                <h4 class="card-title">
                    亿速云
                </h4>
                <div class="card-body">
                    编程学习平台
                </div>
            </div>
        </div>
    </div>
</center>
</body>

</html>

效果如下:

CSS怎么实现响应式堆叠卡片悬停效果

示例代码二:

<!DOCTYPE HTML>
<html>
<head>
    <meta charset="UTF-8">
    <title></title>
    <style>
        body {
            color#FDFAF6;
            background#50CB93;
        }

        :root {
            --offset-before8px;
            --offset-after16px;
        }

        .card {
            position: relative;
            width400px;
            margin60px auto;
        }

        .card::before,
        .card::after {
            content"";
            position: absolute;
            top0;
            left0;
            width100%;
            height100%;
        }

        .card::before,
        .card::after,
        .card .card-inner {
            background-color#423F3E;
            border1px solid #01937C;
            transition: transform 0.5s;
        }

        .card::before,
        .card-inner {
            z-index1;
        }

        .card-inner {
            position: relative;
            padding4rem;
        }

    
        .cards-diagonal::before {
            transformtranslate(calc(-1 * 8px),
            calc(-1 * 8px));
        }

        .cards-diagonal::after {
            transformtranslate(calc(-1 * 16px),
            calc(-1 * 16px));
        }

        .cards-diagonal:hover::before {
            transformtranslate(8px8px);
        }

        .cards-diagonal:hover::after {
            transformtranslate(16px16px);
        }


        .cards-rotate::before,
        .cards-rotate::after {
            transform-origin50% 100%;
        }

        .cards-rotate:hover {
            transformtranslate(2.5px0rotate(2.5deg);
        }

        .cards-rotate:hover::before {
            transformtranslate(2.5px0rotate(2.5deg);
        }

        .cards-rotate:hover::after {
            transformtranslate(5px0rotate(5deg);
        }
        }
    </style>
</head>

<body>
<center>
    <h2>欢迎来到亿速云</h2>
    <div class="card-container">
        <div class="card cards-diagonal">
            <div class="card-inner">
                <h2>将鼠标移至框内</h2>
                <h4 class="card-title">亿速云</h4>
                <div class="card-body">
                    编程学习平台
                </div>
            </div>
        </div>
    </div>
    <div class="card-container">
        <div class="card cards-rotate">
            <div class="card-inner">
                <h2>将鼠标移至框内</h2>
                <h4 class="card-title">亿速云</h4>
                <div class="card-body">
                    编程学习平台
                </div>
            </div>
        </div>
    </div>
</center>
</body>

</html>

效果如下:

CSS怎么实现响应式堆叠卡片悬停效果

示例代码三:

<!DOCTYPE HTML>
<html>
<head>
    <meta charset="UTF-8">
    <title></title>
    <style>
        body {
            color#FDFAF6;
            background#50CB93;
        }

        :root {
            --offset-before8px;
            --offset-after16px;
        }

        .card {
            position: relative;
            width400px;
            margin60px auto;
        }

        .card::before,
        .card::after {
            content"";
            position: absolute;
            top0;
            left0;
            width100%;
            height100%;
        }

        .card::before,
        .card::after,
        .card .card-inner {
            background-color#423F3E;
            border1px solid #01937C;
            transition: transform 0.5s;
        }

        .card::before,
        .card-inner {
            z-index1;
        }

        .card-inner {
            position: relative;
            padding4rem;
        }

        /*Stacked => Up*/
        .cards-up::before,
        .cards-up::after {
            transform-origin: center bottom;
        }

        .cards-up:hover {
            transformtranslate(0, -5px);
        }

        .cards-up:hover::before {
            transformtranslate(05pxscale(0.95);
        }

        .cards-up:hover::after {
            transformtranslate(010pxscale(0.90);
        }

        /*Stacked => Right */
        .cards-right::before,
        .cards-right::after {
            transform-origin: left center;
        }

        .cards-right:hover {
            transformtranslate(5px0);
        }

        .cards-right:hover::before {
            transformtranslate(-10px0scale(0.95);
        }
        }

        .cards-right:hover::after {
            transformtranslate(-10px0scale(0.90);
        }
        }
    </style>
</head>

<body>
<center>
    <h2>欢迎来到亿速云</h2>
    <div class="card-container">
        <div class="card cards-up">
            <div class="card-inner">
                <h2>将鼠标移至框内</h2>
                <h4 class="card-title">亿速云</h4>
                <div class="card-body">
                    编程学习平台
                </div>
            </div>
        </div>
    </div>
    <div class="card-container">
        <div class="card cards-right">
            <div class="card-inner">
                <h2>将鼠标移至框内</h2>
                <h4 class="card-title">亿速云</h4>
                <div class="card-body">
                    编程学习平台
                </div>
            </div>
        </div>
    </div>
</center>
</body>

</html>

效果如下:

CSS怎么实现响应式堆叠卡片悬停效果

“CSS怎么实现响应式堆叠卡片悬停效果”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注亿速云网站,小编将为大家输出更多高质量的实用文章!

亿速云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

css
AI

开发者交流群×