简单聊聊CSS中的3D技术之“立方体”
简单聊聊CSS中的3D技术之“立方体”
大家好,我是今天的男一号,我叫小博主。
今天来聊一下我在前端“逆战班”学习中遇到的颇为有趣的3D知识。前端学习3周,见识稀疏,在下面的分享中如有不对的地方请大家指教。
那下面我们直接来干货!
第一步、构建基础结构。
我们用div和ul-li列表来完成结构。如下图:

第二步、去除基础样式、设置大小和位置
这里比较重要的是给li设置相对定位来实现位置重叠,必须要先给ul设置绝对定位。
positione: relative(绝对定位)、positione: absolute(相对定位)如下图:

第三步、给容器添加景深、观察视角、3D格式。
(1)我们要给box容器添加景深效果,perspective:600px(这里我的景深值为600px)景深效果相当于是3d眼镜,让我们处于3d环境中,
(2)同时还可以设置观察视角,相当于是想让我们的眼镜从哪个方向来看这个效果,也就是perspective-origin:top right(这里我用的视角就是右上角)。
(3)给ul添加3d格式,使我们ul结构拥有3d的结构,相当于处在3d的舞台上transform-style:preserve-3d(这个是3d模型必须要用到的,不添加就无法形成3D结构)。
(4)给ul添加tranform-origin 基点位置,主要是针对 旋转和缩放,默认都是中心点为基点。(这个是等下添加hover时用到的,我提前添加了。)如下图:

第四步、给li设置颜色,进行平面图定位。
这里第1个li不需要调整位置,我们给一个颜色就行了。
第二到第五个需要分别设置位置,形成立方体前的平面图。
像素,因为添加景深的效果,我们可以看到一个角。如果没有景深效果,第一个和第六个是上下位置,距离200px。

第五步、分别对几个面进行位移上的旋转。
因为在上面第三步我们已经加过3D效果,因此我们可以实现3D旋转的效果。
利用transfrom:rotate(角度值)分别设置旋转,这里一定要注意旋转需要设置的基点位置,基点位置tranform-origin:(值)。如下图:

第六步、利用hover查看效果。
利用hover,给ul设置transition:4s 旋转过渡时间,更好的观察移动过程。
°旋转,基点我们在第三步已经设置过了。运行如下图:

这里我们就基本完成3D立方体的任务,下面我再附上完整的CSS代码和HTML代码。


简单聊聊CSS中的3D技术之“立方体”的更多相关文章
- 简单聊聊java中的final关键字
简单聊聊java中的final关键字 日常代码中,final关键字也算常用的.其主要应用在三个方面: 1)修饰类(暂时见过,但是还没用过); 2)修饰方法(见过,没写过); 3)修饰数据. 那么,我们 ...
- 简单聊聊TestNG中的并发
前言 最近在做项目里的自动化测试工作,使用的是TestNG测试框架,主要涉及的测试类型有接口测试以及基于业务实际场景的场景化测试.由于涉及的场景大多都是大数据的作业开发及执行(如MapReduce.S ...
- 简单聊聊java中如何判定一个对象可回收
背景 说到java的特性,其中一个最重要的特性便是java通过new在堆中分配给对象的内存,不需要程序员主动去释放,而是由java虚拟机自动的回收.这也是java和C++的主要区别之一:那么虚拟机是如 ...
- Java并发(10)- 简单聊聊JDK中的七大阻塞队列
引言 JDK中除了上文提到的各种并发容器,还提供了丰富的阻塞队列.阻塞队列统一实现了BlockingQueue接口,BlockingQueue接口在java.util包Queue接口的基础上提供了pu ...
- 简单聊聊TiDB中sql优化的一个规则---左连接消除(Left Out Join Elimination)
我们看看 TiDB 一段代码的实现 --- 左外连接(Left Out Join)的消除; select 的优化一般是这样的过程: 在逻辑执行计划的优化阶段, 会有很多关系代数的规则, 需要将逻辑执行 ...
- 【CSS】330- 手把手教你玩转 CSS3 3D 技术
点击上方"前端自习课"关注,学习起来~ CSS3的3D起步 要玩转css3的3d,就必须了解几个词汇,便是透视(perspective).旋转(rotate)和移动(transla ...
- css中的em 简单教程 -- 转
先附上原作的地址: https://www.w3cplus.com/css/px-to-em 习惯性的复制一遍~~~~ -------------------------------我是分界线---- ...
- css中box-sizing简单说明(标准盒式模型和怪异盒式模型)
今天写程序做布局的时候,遇到关于css中盒式模型的问题,百度了下这属性的解释,脑大啊,文字太绕看不懂.怎么办,于是自己动动手写了段程序测试,嗯,不错,一看效果就恍然大明白了.这里简单说明下,也可能说得 ...
- css中的毛玻璃(不是透明度) 简单文档
其实毛玻璃很简单 只需要在css中加入 backdrop-filter:blur(8px); 8px是模糊力度 注意:使用该方法前需要设置背景不能是透明(如果是显示这个元素下面的图像记得半透明,例子就 ...
随机推荐
- C语言秋季作业4
本周作业头 这个作业属于那个课程 C语言程序设计II 这个作业要求在哪里 作业连接 我在这个课程的目标是 熟练掌握for循环语句的运用 这个作业在那个具体方面帮助我实现目标 通过作业练习 参考文献 文 ...
- Docker基础内容之命令大全
run(未补全) 说明:创建一个新的容器并运行一个命令 语法如下: docker run [OPTIONS] IMAGE [COMMAND] [ARG...] 选项说明: -a stdin: 指定标准 ...
- SpringBoot安全篇Ⅵ --- 整合Spring Security
知识储备: 关于SpringSecurity的详细学习可以查看SpringSecurity的官方文档. Spring Security概览 应用程序的两个主要区域是"认证"和&qu ...
- Centos7 下搭建STF平台
STF,全名Smartphone Test Farm---智能手机测试平台,可以提供远程真机调试的功能,目前仅支持Android设备. 环境准备 1.Node.js 8 安装Node.js $ cur ...
- 如何使用jmeter做一个功能的性能测试
一.为什么又再次写类似的文章? 在博客园和公号写文章,已经快两年了,所以自然在公号和博客园都能联系到我的. 也就是几天前,有个人加我微信,对于总有人加我好友,我已经觉得不奇怪了,为什么呢? 加我好友的 ...
- 痞子衡嵌入式:ARM Cortex-M内核那些事(3.3)- 为AI,ML而生(M55)
大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家介绍的是ARM Cortex-M55. 鼠年春节,大家都在时刻关心 2019nCoV 疫情发展,没太多心思搞技术,就在这个时候,ARM 不声不响 ...
- Oracle笔记(1)--emp表查询(1)
(1)截取函数--TRUNC() 的用法 SELECT TRUNC(789.652) 截取小数, TRUNC(789.652,2) 截取两位小数, TRUNC(789.652,-2) 取整 FROM ...
- [Jinja2]本地加载html模板
import os from jinja2 import Environment, FileSystemLoader env = Environment(loader=FileSystemLoader ...
- Codeforces_712_B
http://codeforces.com/problemset/problem/712/B 水,判断奇偶即可. #include<iostream> #include<string ...
- 使用 Visual Studio 2015 + Python3.6 + tensorflow 构建神经网络时报错:'utf-8' codec can't decode byte 0xcc in position 78: invalid continuation byte
使用 Visual Studio 2015 + Python3.6 + tensorflow 构建神经网络时报错:'utf-8' codec can't decode byte 0xcc in pos ...