美文网首页Web前端之路
css3动画之两面翻转的盒子

css3动画之两面翻转的盒子

作者: 我是何宝荣呀 | 来源:发表于2019-08-26 10:50 被阅读0次

近期学习c3,了解到两面翻转的盒子的两种制作方式:

利用伪元素before、after,只创建一个div

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style>
        /*先清掉默认的样式*/
        body {
            margin: 0;
            padding: 0;
            background-color: bisque;
        }
        /*给创建的div设置宽高和加上3D效果,且加上定位,方便后期的动画操作*/
        .box {
            width: 300px;
            height: 300px;
            margin: 100px auto;
            position: relative;
            transform-style: preserve-3d;
            transition: all 5s;
        }
        /*给伪元素before和after设置宽高,以及定位,
        *此处用上下左右都为0的方法,使得before和after两个盒子紧贴父元素,达到这两个盒子与父盒子同款同高
        *也可以采用width=100% height=100%的方法
        */
        .box::before,.box::after {
            content: '';
            display: block;
            position: absolute;
            left: 0;
            right: 0;
            bottom: 0;
            top: 0;
        }
        .box::before {
            background: url("images/bg.png") right bottom;/*这里是设置背景图*/
            transform: translateZ(0px);/*利用伪元素的话,这里就必须要加上,但是根据浏览器的不同,这里给的值也就不同*/
        }
        .box::after {
            background: url("images/bg.png") left bottom;
            transform: translateZ(0px);/*利用伪元素的话,这里就必须要加上,但是根据浏览器的不同,这里给的值也就不同*/
        }
        .box:hover {
            transform: rotateY(180deg);
        }
    </style>
</head>
<body>
<div class="box"></div>
</body>
</html>

进一步优化——不采用伪元素

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style>
        body {
            margin: 0;
            padding: 0;
            background-color: salmon;
        }
        div {
            width: 224px;
            height: 224px;
            position: relative;
        }
        img  {
            position: absolute;
            top: 0;
            left: 0;
            width: 100%;
            height: 100%;
            transition: all 1s;
        }
        img:last-child {
            backface-visibility: hidden;
        }
        div:hover img {
            transform: rotateY(180deg);
        }
    </style>
</head>
<body>
<div>

    <img src="images/hou.svg" alt="">
    <img src="images/qian.svg" alt="">
</div>
</body>
</html>

一个盒子里面装两个同宽高的盒子,利用backface-visibility设置元素背面是否可见的属性,达到两面翻转的效果

相关文章

  • css3动画之两面翻转的盒子

    近期学习c3,了解到两面翻转的盒子的两种制作方式: 利用伪元素before、after,只创建一个div 进一步优...

  • 网页高级知识点(三)

    CSS3 transition动画 CSS3 transform变换 CSS3 animation动画

  • CSS3 弹性盒子(Flex Box)

    CSS3 弹性盒子(Flex Box) 弹性盒子是 CSS3 的一种新的布局模式。CSS3 弹性盒( Flexib...

  • div+css3弹性盒子(flex box)布局

    一、CSS3 弹性盒子(Flex Box) 弹性盒子是CSS3的一种新布局模式。CSS3 弹性盒( Flexibl...

  • CSS3 弹性盒子

    1、CSS3 弹性盒子(Flex Box) 弹性盒子是 CSS3 的一种新的布局模式。 CSS3 弹性盒( Fle...

  • CSS3弹性盒布局方式

    一、CSS3弹性盒子 弹性盒子是CSS3的一种新布局模式。 CSS3 弹性盒( Flexible Box 或 fl...

  • CSS3弹性盒布局方式

    一、CSS3弹性盒子 弹性盒子是CSS3的一种新布局模式。 CSS3 弹性盒( Flexible Box 或 fl...

  • CSS3 盒子模型

    @(HTML5)[CSS3盒子模型] [TOC] 六 、CSS3盒子模型 盒子阴影 box-shadow h-sh...

  • 08_dayCSS动画

    CSS3新增的功能有:过渡和动画,阴影和圆角 css3过渡动画: css3都有哪些新增的东西 : 过度,动画,阴影...

  • css3动画过渡实现鼠标跟随导航效果

    效果知识点:html/css布局思维, div+css讲解,css3动画,盒子模型, 浮动与定位,鼠标事件。 ?h...

网友评论

    本文标题:css3动画之两面翻转的盒子

    本文链接:https://www.haomeiwen.com/subject/bnqrectx.html