CSS实现元素翻转效果

文章介绍了使用CSS实现元素翻转效果的两种不同思路:一是通过定义包含背面和正面两个子元素的父元素,分别进行翻转;二是控制父元素翻转来实现。文中提供了相应的CSS代码示例,并强调了在不同系统上进行实机测试以确保兼容性的必要性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

CSS实现元素翻转效果

元素翻转的效果能让用户有良好的体验感。
先看看效果:
在这里插入图片描述
CSS实现元素翻转的效果有两种思路
1、定义一个父元素,父元素中两个子元素,两个子元素分别是背面与正面,两个子元素同时翻转
2、定义一个父元素,父元素中两个子元素,两个子元素分别是背面与正面,控制父元素翻转

//两个子元素同时翻转的思路
<style>
    main{
            width: 300px;
            height: 500px;
            position: relative;
            perspective: 5000px;
        }
        .bg,.main{
            width: 100%;
            height: 100%;
            position: absolute;
            left: 0;
            left: 0;
        }
        .bg{
            background-color: red;
            animation: flip1 3s linear;
            animation-fill-mode: forwards;
            backface-visibility: hidden;
        }
        .main{
            background-color: aqua;
            transform: rotateY(180deg);
            animation: flip2 3s linear;
            animation-fill-mode: forwards;
            backface-visibility: hidden;
        }
        @keyframes flip1{
            0%{
                transform: rotateY(0deg);
            }
            100%{
                transform: rotateY(180deg);
            }
        }
        @keyframes flip2{
            0%{
                transform: rotateY(180deg);
            }
            100%{
                transform: rotateY(360deg);
            }
        }
</style>
<main>
    <div class="bg">1</div>
    <div class="main">2</div>
</main>
//仅父元素翻转的思路
<style>
       @keyframes flip{
            0%{
                -webkit-transform:   rotateY(0deg);
                transform:   rotateY(0deg);
                -webkit-animation-timing-function: ease-out;
                animation-timing-function: ease-out;
            }
            100%{
                -webkit-transform:   rotateY(180deg);
                transform:   rotateY(180deg);
                -webkit-animation-timing-function: ease-in;
                animation-timing-function: ease-in;
            }
        }
        main{
            width: 500px;
            height: 500px;
            background-color: red;
            position: relative;
            animation: flip 3s linear;
            transform-style: preserve-3d;
            animation-fill-mode: forwards;
        }
        .bg,.main{
            position: absolute;
            left: 0;
            top: 0;
            width: 100%;
            height: 100%;
            backface-visibility: hidden;
            border-radius: 10px;
        }
        .bg{
            background-color: red;
        }
        .main{
            transform: rotateY(180deg);
            background-color: blue;
        }
</style>
<main>
    <div class="bg">1</div>
    <div class="main">2</div>
</main>

翻转效果建议IOS系统、安卓系统、window系统都要进行实机测试,免得线上环境出现兼容问题。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值