[CSS3]2D与3D变换技术详解

文章目录
- 2D变换(2D Transform)
- 3D变换(3D Transform)
- 结语
CSS3中的2D变换与3D变换是指通过transform属性对HTML元素进行几何操作,使其在二维或三维空间中进行移动、旋转、缩放和倾斜等变换。这些变换为前端开发者提供了创建复杂动画和视觉效果的能力,丰富了网页设计的表现力。

2D变换(2D Transform)
2D变换是指在二维平面内对元素进行的几何操作。CSS3中的2D变换主要包括以下几种:
- translate() - 平移
- 功能:将元素在水平和垂直方向上移动。
- 语法:
| **值 ** | 含义 |
| — | — |
| translateX | 设置水平方向位移,需指定长度值;若指定的是百分比,是参考自身宽度
的百分比。 |
| translateY | 设置垂直方向位移,需指定长度值;若指定的是百分比,是参考自身高度
的百分比。 |
| translate | 一个值代表水平方向,两个值代表:水平和垂直方向。 |
transform: translate(x, y);
- 示例:
transform: translate(50px, 100px);将元素在水平方向移动50px,在垂直方向移动100px。
- 位移与相对定位很相似,都不脱离文档流,不会影响到其它元素。
- 与相对定位的区别:相对定位的百分比值,参考的是其父元素;定位的百分比值,参考的是
其自身。- 浏览器针对位移有优化,与定位相比,浏览器处理位移的效率更高。
- transform 可以链式编写,例如:
transform: translateX(30px) translateY(40px);- 位移对行内元素无效。
- 位移配合定位,可实现元素水平垂直居中
- rotate() - 旋转
2D 旋转是指:让元素在二维平面内,顺时针旋转或逆时针旋转,具体使用方式如下:
- 先给元素添加 **转换属性 **transform
- 编写 transform 的具体值,相关可选值如下
| **值 ** | 含义 |
|---|---|
| rotate | 设置旋转角度,需指定一个角度值( deg ),正值顺时针,负值逆时针。 |
- 功能:围绕元素的中心点旋转元素。
- 语法:
transform: rotate(angle);
- 示例:
transform: rotate(45deg);将元素顺时针旋转45度。
-
scale() - 缩放
-
先给元素添加 **转换属性 **transform
-
编写 transform 的具体值,相关可选值如下:
| **值 ** | 含义 |
|---|---|
| scaleX | 设置水平方向的缩放比例,值为一个数字, 1 表示不缩放,大于 1 放大,小 |
| 于 1 缩小。 | |
| scaleY | 设置垂直方向的缩放比例,值为一个数字, 1 表示不缩放,大于 1 放大,小 |
| 于 1 缩小。 | |
| scale | 同时设置水平方向、垂直方向的缩放比例,一个值代表同时设置水平和垂直缩 |
| 放;两个值分别代表:水平缩放、垂直缩放。 |
- 功能:按指定的比例缩放元素的大小。
- 语法:
transform: scale(sx, sy);
- 示例:
transform: scale(2, 1.5);将元素在X轴方向缩放2倍,Y轴方向缩放1.5倍。
- skew() - 倾斜
- 功能:沿X轴或Y轴倾斜元素。
- 语法:
transform: skew(ax, ay);
- 示例:
transform: skew(30deg, 20deg);将元素在X轴方向倾斜30度,Y轴方向倾斜20度。
- matrix() - 矩阵
- 功能:通过矩阵参数对元素进行复杂的2D变换。
- 语法:
transform: matrix(a, b, c, d, e, f);
- 示例:
transform: matrix(1, 0.5, 0.5, 1, 30, 20);结合平移、缩放、旋转等效果的2D变换。

3D变换(3D Transform)
3D变换是在三维空间内对元素进行的几何操作。相比2D变换,3D变换更加复杂,可以在Z轴(深度)上对元素进行操作。CSS3中的3D变换主要包括以下几种:
使用 transform-style 开启 3D 空间,可选值如下:
flat : 让子元素位于此元素的二维平面内( 2D 空间)—— 默认值
preserve-3d : 让子元素位于此元素的三维空间内( 3D 空间)
- translate3d() - 3D平移
- 功能:在X、Y、Z三个方向上移动元素。
- 语法:
transform: translate3d(x, y, z);
- 示例:
transform: translate3d(50px, 100px, 200px);将元素在X轴上移动50px,Y轴上移动100px,Z轴上移动200px。
- rotateX() - 绕X轴旋转
- 功能:围绕X轴旋转元素。
- 语法:
transform: rotateX(angle);
- 示例:
transform: rotateX(45deg);将元素绕X轴旋转45度。
- rotateY() - 绕Y轴旋转
- 功能:围绕Y轴旋转元素。
- 语法:
transform: rotateY(angle);
- 示例:
transform: rotateY(45deg);将元素绕Y轴旋转45度。
- rotateZ() - 绕Z轴旋转
- 功能:围绕Z轴旋转元素(与2D变换中的rotate相同)。
- 语法:
transform: rotateZ(angle);
- 示例:
transform: rotateZ(45deg);将元素绕Z轴旋转45度。
- scale3d() - 3D缩放
- 功能:在X、Y、Z三个方向上缩放元素。
- 语法:
transform: scale3d(sx, sy, sz);
- 示例:
transform: scale3d(2, 1.5, 1);将元素在X、Y、Z方向分别缩放。
- perspective() - 视角
- 功能:设置3D变换的视角距离,使元素在3D空间中有深度感。
- 语法:
perspective: distance;
- 示例:
perspective: 500px;
transform: rotateY(45deg);
为元素设置500px的视角,并将其绕Y轴旋转45度。
结语
2D和3D变换为Web设计和开发提供了丰富的视觉效果。掌握这些变换技术,不仅能增强网页的互动性,还能为用户带来更直观、生动的体验。在实际应用中,可以将这些变换与CSS动画结合,创造出更加复杂和有趣的效果。

相关文章:
[CSS3]2D与3D变换技术详解
文章目录 2D变换(2D Transform)3D变换(3D Transform)结语 CSS3中的2D变换与3D变换是指通过transform属性对HTML元素进行几何操作,使其在二维或三维空间中进行移动、旋转、缩放和倾斜等变换。这些变换为前端开发者提供了…...
大恒相机通过Line2或Line3直接给出3.3V触发,形成分时曝光
大恒相机通过Line2或Line3直接给出3.3V触发,形成分时曝光 一、分时曝光需求二、3.3V信号分时曝光设计 写在前面 上班了,没多少时间再去精度论文了,大多是项目上的事情。 一、分时曝光需求 一般的12V光源通过光源控制器与大恒相机Line1线连接…...
electronjs实现打开的网页密码自动保存
在 Electron 中实现自动保存网页密码的功能涉及到几个步骤,以下是一个基本的实现思路: 1. 监听登录事件 首先,你需要监听用户的登录事件。当用户在一个网页上登录后,通常会有一个 POST 请求发送到服务器验证凭据。你可以监听这个…...
观测云的自动化监控:CRD 资源与自动发现
在云原生技术快速发展的今天,Kubernetes已成为企业容器化应用的中心舞台。随着应用的规模化和动态化,传统的监控方法已经难以满足需求。自动化监控,以其高效性和准确性,成为云原生监控的新趋势。观测云平台通过与Kubernetes的深度…...
九、OpenCVSharp 中的图像形态学操作
文章目录 简介一、腐蚀1. 腐蚀的原理和数学定义2. 结构元素的形状和大小选择3. 腐蚀操作的代码实现和效果展示二、膨胀1. 膨胀的概念和作用2. 与腐蚀的对比和组合使用(如开运算、闭运算)三、开运算1. 开运算的定义和用途(去除小的明亮区域)2. 开运算在去除噪声和分离物体方…...
http和websocket
http和websocket是什么 网络通信的协议 区别 http: 只能客户端发送,服务端接收。 websocket: 客户端和服务端都可以发送和接收数据。 链接...
Go 语言错误处理
不管使用哪种语言,程序代码都可能包含各种错误,例如语法错误、逻辑错误、除 0 错误和文件缺失等。因此,每种编程语言都有处理错误的内置机制。 1. Go 程序中的错误 需要指出的是,错误有多种类型。语法错误通常是开发人员在编写代…...
LVS部分配置1
LVS nat服务器(作时间服务器) [rootlocalhost ~]# systemctl stop firewalld [rootlocalhost ~]# setenforce 0 [rootlocalhost ~]# yum -y install ntpdate [rootlocalhost ~]# ntpdate cn.ntp.org.cn [rootlocalhost ~]# which ntpdate [rootlocalhost…...
datax和datax-web打包成docker运行
概述 datax和datax-web从一台机器迁移到另一台时,要重新搭建一套运行环境,比较麻烦;打包成docker镜像后迁移就方便多了; 因为我的mysql版本是8,需要在datax的read和write中手动添加8的jdbc驱动 所以我先各自下载好了datax和data…...
命令行参数环境变量
目录 前言: 命令行参数: 现象: 这些参数的意义: 为什么要这么做? 这些事是谁做的呢? 环境变量 现象: 创建环境变量: 结合程序理解: 前言: 我们在前…...
『大模型笔记』WizardLM:使大型预训练语言模型能够遵循复杂的指令
WizardLM: Empowering Large Pre-Trained Language Models to Follow Complex Instructions 文章目录 一. WizardLM:使大型预训练语言模型能够遵循复杂的指令二. Evolve-Instruct(优化版)2.1. 概述2.2. 实施二. 参考文献WizardLM:使大型预训练语言模型能够遵循复杂的指令:…...
编程-设计模式 2:抽象工厂模式
设计模式 2:抽象工厂模式 定义与目的 定义:抽象工厂模式提供一个接口,用于创建一系列相关或相互依赖的对象,而无需指定它们具体的类。目的:该模式的主要目的是解耦客户端代码与产品类之间的关系,并确保一…...
阿里云智能大数据演进
本文根据7月24日飞天发布时刻产品发布会、7月5日DataFunCon2024北京站:大数据大模型.双核时代实录整理而成,演讲信息如下: 演讲人:徐晟 阿里云研究员/计算平台产品负责人 主要内容: Overview - 阿里云大数据 AI 产品…...
Java面试题———Spring篇①
目录 一,谈谈你对SpringIOC的理解 二,Spring中有哪些依赖注入方式 三,你用过哪些Spring注解 四,SpringBean的作用域有几种 五,Spring中的bean线程安全吗 六,谈谈你对SpringAOP的理解 七,…...
4章10节:用R做数据重塑,变体函数应用详解和可视化的数据预处理介绍
数据重塑(Data Reshaping)是将数据从一种结构转换为另一种结构的过程,是清理、分析和可视化数据的重要步骤。R语言作为数据科学的强大工具,提供了许多包来帮助我们进行数据重塑,其中最常用的就是dplyr包。dplyr包以其简洁的语法和高效的操作速度著称,它不仅可以帮助我们进…...
Socks5代理IP在跨境电商和网络爬虫领域的实战应用
在现代互联网环境中,Socks5代理IP因其强大的灵活性和隐私保护功能,成为了跨境电商和网络爬虫领域的重要工具。本文将探讨Socks5代理IP的基本原理,并详细介绍其在跨境电商和网络爬虫中的实际应用。 1. Socks5代理IP简介 Socks5代理IP是一种网…...
农业上的目标跟踪论文汇总
文章目录 2022Multi-object tracking using Deep SORT and modified CenterNet in cotton seedling counting (Computers and Electronics in Agriculture)A novel apple fruit detection and counting methodology based on deep learning and trunk tracking in modern orcha…...
gpxt 小程序:轨迹合并与管理的高效工具
引言 在户外探险和运动追踪领域,GPXT小程序以其独特的轨迹管理和合并功能脱颖而出,成为徒步、骑行等运动爱好者不可或缺的工具。本文将详细介绍GPXT小程序的核心功能及其对户外活动爱好者的实用性。 核心功能概览 轨迹合并 GPXT小程序允许用户将多个…...
elasticsearch集成springboot详细使用
1.es下载&配置 配置JVM 配置跨域 配置https和密码 2.es启动 .\elasticsearch.bat 或 后台启动: nohup ./bin/elasticsearch& 浏览器访问:https://localhost:9200 输入账户:elastic / 123456 3.重置es密码 .\elasticsearch-r…...
html+css网页制作 化妆品电商4个页面
htmlcss网页制作 化妆品电商4个页面 网页作品代码简单,可使用任意HTML编辑软件(如:Dreamweaver、HBuilder、Vscode 、Sublime 、Webstorm、Text 、Notepad 等任意html编辑软件进行运行及修改编辑等操作)。 获取源码 1ÿ…...
Phi-3 Forest Laboratory 数学公式处理:集成MathType逻辑的LaTeX代码生成
Phi-3 Forest Laboratory 数学公式处理:集成MathType逻辑的LaTeX代码生成 你是不是也遇到过这样的场景?写论文或者做笔记时,需要插入一个复杂的数学公式,比如那个让人头疼的“二元二次方程的求根公式”。你打开LaTeX编辑器&#…...
Ostrakon-VL-8B视觉语言模型一键部署:Anaconda环境配置保姆级教程
Ostrakon-VL-8B视觉语言模型一键部署:Anaconda环境配置保姆级教程 你是不是也对那些能看懂图片、还能跟你聊天的AI模型感到好奇?想自己动手部署一个来玩玩,结果被各种环境配置、依赖冲突搞得头大?别担心,今天咱们就来…...
Legacy iOS Kit:让旧款iOS设备重获新生的全方位解决方案
Legacy iOS Kit:让旧款iOS设备重获新生的全方位解决方案 【免费下载链接】Legacy-iOS-Kit An all-in-one tool to downgrade/restore, save SHSH blobs, and jailbreak legacy iOS devices 项目地址: https://gitcode.com/gh_mirrors/le/Legacy-iOS-Kit 旧设…...
腾讯优图4B模型实测:轻量级多模态AI,图片描述、图表分析、目标检测,一个模型全解决
腾讯优图4B模型实测:轻量级多模态AI,图片描述、图表分析、目标检测,一个模型全解决 1. 开箱体验:4B参数的全能选手 当我第一次在CSDN星图镜像广场看到这个只有4B参数的腾讯优图多模态模型时,说实话是持怀疑态度的。毕…...
【PyCon 2024闭门报告首发】:基于237个微基准测试的Python 3.14 JIT编译策略矩阵分析
第一章:PyCon 2024闭门报告核心结论与JIT演进全景核心共识:CPython JIT不再追求“全量即时编译” PyCon 2024闭门技术委员会明确指出,CPython 3.13 的JIT策略已从早期“通用LLVM后端”转向聚焦于“热点字节码的增量式优化”。其目标并非替代C…...
Vite 8 架构革新:从双引擎到 Rolldown 统一打包的演进之路
1. Vite 8 架构革新的背景与痛点 如果你用过 Vite 7 或更早版本,一定对它的闪电般开发体验印象深刻。这主要得益于 Vite 独特的双引擎架构:开发时用 esbuild 实现毫秒级启动,生产环境则用 Rollup 保证打包质量。但我在实际项目中发现…...
OpenClaw本地知识库整合:Qwen3.5-4B-Claude-4.6-Opus-Reasoning-Distilled-GGUF增强专业领域回答
OpenClaw本地知识库整合:Qwen3.5-4B-Claude-4.6-Opus-Reasoning-Distilled-GGUF增强专业领域回答 1. 为什么需要本地知识库与模型协同工作 去年我在处理一批医疗行业的技术文档时,发现通用大模型对专业术语的解释总差那么点意思。模型要么给出过于笼统…...
OpenClaw网关配置详解:Qwen3-32B镜像的端口与安全设置
OpenClaw网关配置详解:Qwen3-32B镜像的端口与安全设置 1. 为什么需要关注网关配置? 上周我在本地部署Qwen3-32B模型时,遇到了一个尴尬的问题:凌晨3点被安全团队电话叫醒,原因是OpenClaw的测试端口被扫描到异常流量。…...
还在为多平台资源下载烦恼?这款工具让你一站式搞定网络内容保存
还在为多平台资源下载烦恼?这款工具让你一站式搞定网络内容保存 【免费下载链接】res-downloader 资源下载器、网络资源嗅探,支持微信视频号下载、网页抖音无水印下载、网页快手无水印视频下载、酷狗音乐下载等网络资源拦截下载! 项目地址: https://gi…...
【2026 Python并发新纪元】:从asyncio到subinterpreters再到Rust-Python混合调度——全栈工程师必须掌握的4层无锁架构
第一章:Python无锁GIL环境的范式革命传统CPython解释器受全局解释器锁(GIL)制约,即使在多核CPU上也无法实现真正的并行字节码执行。近年来,随着PyPy的STM分支、RustPython的无GIL设计,以及CPython官方在PEP…...
