【CSS3】CSS3 3D 转换 ① ( CSS3 3D 转换简介 | 3D 物体与 2D 物体区别 | 3D 空间坐标系 | 常用的 3D 转换属性 | 3D 位移转换语法 | 代码示例 )

2023-08-11 20:35:54





一、CSS3 3D 转换简介




1、3D 物体与 2D 物体区别


3D 显示的物体 与 平面 2D 显示的物体有明显的不同 , 3D 显示效果有 近大远小 的 特点 ;

元素的 2D 的 转换效果 有 平移 , 旋转 , 缩放 效果 , 同样有对应的 3D 转换效果 ;


2、2D 平面坐标系


2D 平面坐标系 中 , 只有 x 轴 和 y 轴 ;

在这里插入图片描述

3、3D 空间坐标系


3D 空间坐标系 比 2D 平面坐标系 多了一个 Z 轴 ;

  • x 轴 : 水平向右 ; 左侧是负值 , 右侧是正值 ;
  • y 轴 : 垂直向下 ; 上面是负值 , 下面是正值 ;
  • z 轴 : 垂直与屏幕 , 里面是负值 , 外面是正值 ;

在这里插入图片描述


4、常用的 3D 转换属性


常用的 3D 转换属性 :

  • matrix3d(n,n,n,n,n,n, n,n,n,n,n,n,n,n,n,n) : 使 4 x 4 矩阵 定义 3D 转换 , 共 16 个值 ;
  • translateZ(z) : 沿 Z 轴平移 ;
  • scale3d(x,y,z) : 自定义 3D 缩放 ;
  • scaleX(x) : 沿 X 轴缩放 ;
  • scaleY(y) : 沿 Y 轴缩放 ;
  • scaleZ(z) : 沿 Z 轴缩放 ;
  • rotate3d(x,y,z,angle) : 自定义 3D 旋转 ;
  • rotateX(angle) : 绕 X 轴旋转 ;
  • rotateY(angle) : 绕 Y 轴旋转 ;




二、3D 位移转换



CSS3 3D 转换中 , 最常用的两个转换是 :

  • 3D 位移
  • 3D 旋转

1、3D 位移转换语法


3D 位移 是在 3D 位移 基础上 , 增加了 沿 Z 轴平移的功能 ;

2D 的 X 轴 和 Y 轴 方向上平移的属性设置 , 在 3D 平移中仍然保留 ;


常用的 3D 位移转换 :

  • translateX(x) : 沿 X 轴平移 ;
  • translateY(y) : 沿 Y 轴平移 ;
  • translateZ(z) : 沿 Z 轴平移 ; X , Y 轴可以使用百分比单位 , 但是 Z 轴必须使用 像素单位 px ;
  • translate3d(x,y,z) : 沿 X , Y , Z 轴平移 ;

在 translate3d(x,y,z) 属性中 , x , y , z 三个轴的平移都不可省略 , 如果没有平移就设置为 0 ;


2、代码示例分析


下面的代码中 , 通过 设置 transform: translate3d (x,y,z) 样式 , 实现 3D 空间中的平移 ,

其中 x , y , z 表示 物体 在 三维空间 中 沿着 x 轴 , y 轴 , z 轴 平移的距离 ,

代码作用是 令 div 元素 :

  • 在 x 轴方向上移动 10px
  • 在 y 轴方向上移动 20px
  • 在 z 轴方向上移动 30px

代码示例 :

div {  
  transform: translate3d(10px, 20px, 30px);  
}

如果想要对 XYZ 中的某一个轴进行位移转换 :

  • translateX(x) 是对 x 轴 设置位移转换
  • translateY(y) 是对 y 轴 设置位移转换
  • translateZ(z) 是对 z 轴 设置位移转换




三、代码示例




1、代码示例 - 没有进行 3D 平移的参考示例


代码示例

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>3D 转换 - 平移</title>
    <style>
        div {
            width: 200px;
            height: 200px;
            background-color: pink;
            /* 设置 3D 转换 */
            /* transform: translateX(100px) translateY(100px) translateZ(100px) */
        }
    </style>
</head>

<body>
    <div></div>
</body>

</html>

执行结果

在这里插入图片描述


2、代码示例 - 3D 平移示例


代码示例

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>3D 转换 - 平移</title>
    <style>
        div {
            width: 200px;
            height: 200px;
            background-color: pink;
            /* 设置 3D 转换 */
            transform: translateX(100px) translateY(100px) translateZ(100px)
        }
    </style>
</head>

<body>
    <div></div>
</body>

</html>

执行结果

在这里插入图片描述


3、代码示例 - 3D 平移简写形式示例


代码示例

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>3D 转换 - 平移</title>
    <style>
        div {
            width: 200px;
            height: 200px;
            background-color: pink;
            /* 设置 3D 转换 */
            transform: translate3d(100px, 100px, 100px)
        }
    </style>
</head>

<body>
    <div></div>
</body>

</html>

执行结果

在这里插入图片描述

更多推荐

最佳优先搜索简介

概念:最佳优先搜索算法(Best-FirstSearch)是一种启发式搜索算法,用于在图中找到从起点到目标节点的最佳路径。使用一个优先队列来存储待扩展的节点,优先队列根据节点的启发式评估函数值进行排序。在每次迭代中,算法选择队列中启发式评估函数值最小的节点进行扩展,直到找到目标节点或遍历完所有节点。最佳优先搜索算法用于

什么是智能推荐?智能推荐的原理是什么?

一、智能推荐的魔力2020年的愚人节晚间,罗永浩在抖音带货,相信你也被刷屏了吧。3小时的直播过程中,22款产品轮番出场,最终首播支付交易总额突破1.1亿、整场直播观看总人数超过4800万、总销售件数逾91万,粉丝打赏音浪收入3600万,由此看来,罗老师看起来离“带货一哥”的目标又进了一步。不得不说,这场魔幻版的流量狂潮

如何学习java

带着问题去学?为什么我们debug的时候代码会停在哪一个位置什么是多态?(这个在类的生命周期里面寻找答案)我们学习java就是从代码到成为程序的过程所以这很明显就是我们的编译原理和os打交道这很明白就是操作系统和另一台机器打交道,那么就是计算机网络java指令8个从代码到程序就是从代码到字节码(javap命令可以看到)

七、运算符

运算符1.运算符1.1.赋值运算符1.2.算数运算符1.3.自增和自减运算符1.4.比较运算符1.5.逻辑运算符1.6.位运算符1.6.1.按位与运算1.6.2.按位或运算1.6.3.按位取反运算1.6.4.按位异或运算1.6.5.移位操作1.6.6.复合赋值运算符1.6.7.三元运算符1.6.8.运算符优先级1.7.

Linear Feedback Shift Register

线性反馈移位寄存器(LinearFeedbackShiftRegister,简称LFSR)是一种数字电路设计和密码学中常用的寄存器类型。它是一种简单而高效的方式,用于生成伪随机的二进制序列,并在数据混淆、错误检测和加密等领域中有应用。LFSR通常用于流密码的生成。以下是LFSR的关键特性和组成部分:移位寄存器:LFSR

应用程序接口(API)安全的入门指南

本文简单回顾了API的发展历史,其基本概念、功能、相关协议、以及使用场景,重点讨论了与之相关的不同安全要素、威胁、认证方法、以及十二项优秀实践。根据有记录的历史,随着Salesforce的销售自动化解决方案的推出,首个WebAPI在1990年底出现了。在那个时候,它是一种每个人都可以访问到的开放资源。Salesforc

MySQL常用操作

目录1.安装MySQL/MariaDB2.用户管理2.1用户信息2.2用户权限privileges3.增删改查3.1增删数据库/表3.2查询参考1.安装MySQL/MariaDB#1)确认是否已安装mysqlrpm-qa|grepmysql#2)(如无)执行以下命令进行安装##方法一yuminstallmysql-y#

docker介绍及入门举例

Docker是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器或Windows机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。Docker的主要优点有:1.提供了一种在任何地方创建、运行和分发应用程序的方法,而不仅仅是在虚拟机

Centos系统常见配置(详细)总结

目录一、简介二、具体内容1、设置静态ip2、重启网络3、ssh登录时自动运行命令4、新增用户并创建家目录5、终端显示bash-4.2#6、更换yum源7、centos系统串口终端自动登陆8、系统启动通过rc.local自动执行脚本9、关闭防火墙10、设置samba三、其他相关链接Ubuntu系统设置常见问题处理详细总结

iOS16新特性:实时活动-在锁屏界面实时更新APP消息 | 京东云技术团队

简介之前在《iOS16新特性:灵动岛适配开发与到家业务场景结合的探索实践》里介绍了iOS16新的特性:实时更新(LiveActivity)中灵动岛的适配流程,但其实除了灵动岛的展示样式,LiveActivity还有一种非常实用的应用场景,那就是锁屏界面实时状态更新:上图是部分已经做出适配的APP,锁屏实时活动的展示。可

RabbitMQ常见问题

一、RabbitMQ如何保证消息不丢失?这是面试时最喜欢问的问题,其实这是个所有MQ的一个共性的问题,大致的解决思路也是差不多的,但是针对不同的MQ产品会有不同的解决方案。而RabbitMQ设计之处就是针对企业内部系统之间进行调用设计的,所以他的消息可靠性是比较高的。1、哪些环节会有丢消息的可能?我们考虑一个通用的MQ

热文推荐