zoukankan      html  css  js  c++  java
  • CSS 实例之打开大门

    本个实例主要的效果如下图所示

    本案例主要运用到了3D旋转和定位技术。具体步骤如下:

    1、首先在页面主体加三个很简单的div标签:

     <div class="door">
            <div class="door-l"></div>
            <div class="door-r"></div>
        </div>

    2、给外层盒子(.door) 加上基本的属性、背景、视距以及相对定位(子盒子要用到绝对定位,所以父盒子最好 加上相对定位)。

    .door {
                width: 450px;
                height: 450px;
                border: 1px solid #000000;
                margin: 100px auto;
                background: url(Images/men.png) no-repeat;
                background-size: 100% 100%;
                position: relative;
                perspective: 1000px;
            }

    3、给左右的门设置相关属性,这里给出左盒子的 相关属性。右盒子只需将定位改为右边距离为0,以及将旋转轴改为右侧即可。

    .door-l {
                width: 50%;
                height: 100%;
                background-color: brown;
                position: absolute;
                top: 0;
                transition: all 0.5s;
                left: 0;
                border-right: 1px solid #000000;
                transform-origin: left;
            }

    4、添加门上的 小圆环,在这里是使用伪元素 before 进行添加的。

      (1)、设置大小与边框 

      (2)、设置border-radius 为50% 让其变成圆形。

      (3)、设置定位 垂直居中并靠里面有一定距离。

    .door-l::before {
                content: "";
                border: 1px solid #000000;
                width: 20px;
                height: 20px;
                position: absolute;
                top: 50%;
                border-radius: 50%;
                transform: translateY(-50%);
                right: 5px;
            }

    5、最后设置旋转度数,我这里是设置了120度(注意度数的正负代表旋转方向)

    .door:hover .door-l {
                transform: rotateY(-120deg);
            }

    下面给出完整代码,给大家参考一下。

    <!DOCTYPE html>
    <html lang="en">
    
    <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <meta http-equiv="X-UA-Compatible" content="ie=edge">
        <title>Document</title>
        <style>
            .door {
                width: 450px;
                height: 450px;
                border: 1px solid #000000;
                margin: 100px auto;
                background: url(Images/men.png) no-repeat;
                background-size: 100% 100%;
                position: relative;
                perspective: 1000px;
            }
            
            .door-l,
            .door-r {
                width: 50%;
                height: 100%;
                background-color: brown;
                position: absolute;
                top: 0;
                transition: all 0.5s;
            }
            
            .door-l {
                left: 0;
                border-right: 1px solid #000000;
                transform-origin: left;
            }
            
            .door-r {
                right: 0;
                border-left: 1px solid #000000;
                transform-origin: right;
            }
            
            .door-l::before,
            .door-r::before {
                content: "";
                border: 1px solid #000000;
                width: 20px;
                height: 20px;
                position: absolute;
                top: 50%;
                border-radius: 50%;
                transform: translateY(-50%);
            }
            
            .door-l::before {
                right: 5px;
            }
            
            .door-r::before {
                left: 5px;
            }
            
            .door:hover .door-l {
                transform: rotateY(-120deg);
            }
            
            .door:hover .door-r {
                transform: rotateY(120deg);
            }
        </style>
    </head>
    
    <body>
        <div class="door">
            <div class="door-l"></div>
            <div class="door-r"></div>
        </div>
    </body>
    
    </html>
    View Code
  • 相关阅读:
    influxdb 使用
    【刷题】如何查找最长链
    学习中的开源框架和系统
    常见错误总结
    开发者必备网站
    计算机基础知识以及常用业务场景
    (1)、hive框架搭建和架构简介
    hadoop安装和配置
    linux基础
    UML学习目录
  • 原文地址:https://www.cnblogs.com/Assist/p/9684982.html
Copyright © 2011-2022 走看看