zoukankan      html  css  js  c++  java
  • [CSS] Use CSS Transforms to Create Configurable 3D Cuboids

    In this lesson, we use CSS transforms to create configurable 3D cuboids.

    Using CSS transforms in combination with scoped CSS variables, we are able to configure the height, width, and depth for cuboids without ever having to repeat those styles.

    *,
    *:before,
    *:after {
      box-sizing: border-box;
    }
    
    body {
      min-height: 100vh;
      background: hsl(210, 50%, 20%);
      display: flex;
      flex-direction: column;
      align-items: center;
      justify-content: center;
      perspective: 800px;
    }
    
    .cuboid {
      --width: 10vmin;
      --height: 20vmin;
      --depth: 30vmin;
      height: var(--height);
      width: var(--width);
      position: relative;
      transform: rotateX(24deg) rotateY(32deg);
      transform-style: preserve-3d;
    }
    
    .cuboid__side {
      background-color: hsla(0, 0%, 100%, 0.2);
      border: 1px solid hsl(0, 0%, 10%);
      position: absolute;
    }
    
    .cuboid__side:nth-of-type(1),
    .cuboid__side:nth-of-type(2) {
      --coefficient: -0.5;
      height: var(--height);
      width: var(--width);
      transform: translate3d(0, 0, calc(var(--depth) * var(--coefficient)));
    }
    
    .cuboid__side:nth-of-type(2) {
      --coefficient: 0.5;
    }
    
    .cuboid__side:nth-of-type(3),
    .cuboid__side:nth-of-type(4) {
      --rotation: 90deg;
      height: var(--height);
      width: var(--depth);
      left: 50%;
      top: 50%;
      transform: translate(-50%, -50%) rotateY(var(--rotation)) translate3d(0, 0, calc(var(--width) * -0.5));
    }
    
    .cuboid__side:nth-of-type(4) {
      --rotation: -90deg;
    }
    
    .cuboid__side:nth-of-type(5),
    .cuboid__side:nth-of-type(6) {
      --rotation: -90deg;
      height: var(--depth);
      width: var(--width);
      left: 50%;
      top: 50%;
      transform: translate(-50%, -50%) rotateX(var(--rotation)) translate3d(0, 0, calc(var(--height) * -0.5));
    }
    
    .cuboid__side:nth-of-type(6) {
      --rotation: 90deg;
    }
    
    .cuboid:nth-of-type(2) {
      --width: 5vmin;
      --height: 15vmin;
      --depth: 10vmin;
    }

  • 相关阅读:
    在k8s中部署jenkins
    k8s CI/CD介绍
    k8s 构建jenkinsslave
    k8s 安全框架
    k8s RBAC介绍
    k8s 存储小结
    k8s 实施准备工作
    k8s 网络示例
    jenkins在kubernetes中动态创建代理
    k8s 鉴权 授权 准入控制
  • 原文地址:https://www.cnblogs.com/Answer1215/p/13881508.html
Copyright © 2011-2022 走看看