HTML5+CSS3小实例:3D卡片hover翻转效果

实例:3D卡片hover翻转效果
技术栈:HTML+CSS
效果:

源码:
【html】

<!DOCTYPE html>
<html>
 
<head>
    <meta http-equiv="content-type" content="text/html; charset=utf-8">
    <meta name="viewport" content="width=device-width,initial-scale=1,maximum-scale=1,user-scalable=no">
 
    <title>3D卡片hover翻转效果</title>
    <link rel="stylesheet" href="../css/96.css">
</head>
 
<body>
    <section>
        <div class="card">
            <div class="box">
                <div class="img-box">
                    <img src="../images/op/1.jpg" alt="">
                </div>
                <div class="con-box">
                    <div>
                        <h2>蒙奇·D·路飞</h2>
                        <p>蒙奇·D·路飞,日本漫画《航海王》及其衍生作品中的男主角。外号“草帽”路飞,是草帽一伙、草帽大船团的船长,极恶的世代之一。橡胶果实能力者,悬赏金15亿贝里。梦想是找到传说中的One Piece,成为海贼王。</p>
                    </div>
                </div>
            </div>
        </div>
        <div class="card">
            <div class="box">
                <div class="img-box">
                    <img src="../images/op/2.jpg" alt="">
                </div>
                <div class="con-box">
                    <div>
                        <h2>罗罗诺亚·索隆</h2>
                        <p>罗罗诺亚・索隆,日本漫画《航海王》及其衍生作品中的角色。“草帽一伙”的战斗员,人称“海贼猎人”。2年前登陆香波地群岛的11位“超新星”其中的一位。同时也是被人称作“极恶的世代”中的一位。</p>
                    </div>
                </div>
            </div>
        </div>
        <div class="card">
            <div class="box">
                <div class="img-box">
                    <img src="../images/op/3.jpg" alt="">
                </div>
                <div class="con-box">
                    <div>
                        <h2>山治</h2>
                        <p>山治,日本漫画《海贼王》及其衍生作品中的角色。草帽一伙的厨师,因踢技快准狠被海军称之为“黑足”,悬赏金为3亿3000万贝里。海贼中的绅士,有着卷曲眉毛,永远遮住半边脸的家伙,香烟不离口,最爱女人,很花心但很有风度,从不愿意伤害任何女性,哪怕是敌人。</p>
                    </div>
                </div>
            </div>
        </div>
    </section>
</body>
 
</html>

【css】

*{
    /* 初始化 */
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}
body{
    /* 100%窗口高度 */
    min-height: 100vh;
    /* 弹性布局 水平+垂直居中 */
    display: flex;
    justify-content: center;
    align-items: center;
    background: linear-gradient(200deg,#fff1eb,#ace0f9);
}
section{
    display: flex;
    justify-content: center;
    align-items: center;
    flex-wrap: wrap;
}
.card{
    /* 相对定位 */
    position: relative;
    width: 320px;
    height: 320px;
    margin: 20px;
    /* 开启3D效果 */
    transform-style: preserve-3d;
    perspective: 1000px;
}
.card .box{
    /* 绝对定位 */
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    transform-style: preserve-3d;
    /* 设置过渡 */
    transition: 1s ease;
}
.card .box .img-box{
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
}
.card .box .img-box img{
    width: 100%;
    height: 100%;
    object-fit: cover;
}
.card .box .con-box{
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-color: #333;
    display: flex;
    justify-content: center;
    align-items: center;
    /* 隐藏旋转div元素的背面 */
    backface-visibility: hidden;
    transform-style: preserve-3d;
    /* 默认沿Y轴旋转180度 */
    transform: rotateY(180deg);
}
.card .box .con-box div{
    transform-style: preserve-3d;
    padding: 20px;
    color: #fff;
    /* 渐变背景 */
    background: linear-gradient(30deg,#514a9d,#24c6dc);
    /* 默认沿Z轴偏移100px */
    transform: translateZ(100px);
}
.card .box .con-box div h2{
    font-size: 20px;
    letter-spacing: 1px;
}
.card .box .con-box div p{
    margin-top: 5px;
    font-size: 15px;
    text-align: justify;
}
.card:hover .box{
    /* 鼠标移入,盒子旋转180度 */
    transform: rotateY(180deg);
}
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容