css3 2D与3D转换

css3 2D与3D转换

  • 前言
  • 2D变形
    • 旋转变形 rotate()
      • transform-origin属性
    • 缩放变形 scale()
    • 斜切变形 skew()
    • 位移变形 translate()
  • 3D变形
    • 3D旋转 rotateX() | rotateY()
      • perspective属性
    • 空间移动
  • 制作一个正方体
  • 结语

前言

网页设计不再局限于平面,而是充满了立体感和动态效果。CSS3的2D与3D转换技术就像一把魔法棒,让我们能够在页面中创造出引人入胜的立体效果。本文将带你踏入这个维度,探索CSS3转换的奇妙之处。

2D变形

旋转变形 rotate()

将transform属性的值设置为rotate(),即可实现旋转变形
在这里插入图片描述
若角度为正,则顺时针方向旋转,否则逆时针方向旋转

transform-origin属性

可以使用transform-origin属性设置自己的自定义变换原点

transform-origin:0 0;  //表示以左上角作为中心点

缩放变形 scale()

将transform属性的值设置为scale(),即可实现缩放变形

transform:scale(3);  //3表示缩放的倍数,当数值小于1时,表示缩小元素,大于1时,表示放大元素

斜切变形 skew()

将transform属性的值设置为skew(),即可实现斜切变形
在这里插入图片描述

位移变形 translate()

将transform属性的值设置为translate(),即可实现位移变形
在这里插入图片描述
位移变形和相对定位非常像,位移变形也会“老家留坑”,“形影分离”,兼容到ie9

3D变形

3D旋转 rotateX() | rotateY()

将transform属性的值设置为rotateX()或者rotateY(),即可实现绕横轴、纵轴旋转
在这里插入图片描述

perspective属性

perspective属性用来定义透视强度,可以理解为“人眼到舞台的距离”,单位是px
在这里插入图片描述

<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"><meta name="viewport"content="width=device-width,initial-scale=1, user-scalable=no, maximum-scale=1,minimum-scale=1"><!-- width=device-width, initial-scale=1.0 页面的宽度应该等于设备的宽度,并且初始缩放级别为 1.0。这有助于确保在移动设备上以正常大小呈现页面,而不是被过度缩放。 --><title>Document</title><style>* {margin: 0;padding: 0;}p {width: 200px;height: 200px;border: 1px solid #000;background-color: orange;transform: rotateX(30deg);}.box1 {width: 202px;height: 202px;border: 1px solid #000;margin: 50px auto;perspective: 300px;}</style>
</head><body><div class="box1"><p> </p></div></body></html>

空间移动

当元素进行3D旋转后,即可继续添加translatex()、translateY()、translatez()属性让元素在空间进行移动
在这里插入图片描述
**一定记住:**空间移动要添加在3D旋转之后

transform:rotateX(30deg) translateX(30px) translateZ(100px);

制作一个正方体

正方体的每个面都是从舞台经过不同的3D旋转、空间移动到自己的位置的

<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"><meta name="viewport"content="width=device-width,initial-scale=1, user-scalable=no, maximum-scale=1,minimum-scale=1"><!-- width=device-width, initial-scale=1.0 页面的宽度应该等于设备的宽度,并且初始缩放级别为 1.0。这有助于确保在移动设备上以正常大小呈现页面,而不是被过度缩放。 --><title>Document</title><style>* {margin: 0;padding: 0;}.box1 {width: 202px;height: 202px;border: 1px solid #000;margin: 200px auto;perspective: 300px;position: relative;}p {width: 200px;height: 200px;position: absolute;top: 0;left: 0;}.box1 p:nth-child(1) {background: rgb(62 255 244 / 73%);/* 前面 */transform: translateZ(100px)}.box1 p:nth-child(2) {background: rgba(242, 255, 62, 0.959);/* 顶面 */transform: rotateX(90deg) translateZ(100px)}.box1 p:nth-child(3) {background: rgba(65, 62, 255, 0.73);/* 背面 */transform: rotateX(180deg) translateZ(100px)}.box1 p:nth-child(4) {background: rgba(62, 255, 120, 0.73);/* 底面 */transform: rotateX(-90deg) translateZ(100px)}.box1 p:nth-child(5) {background: rgb(255, 122, 34);/* 侧面 */transform: rotateY(90deg) translateZ(100px)}.box1 p:nth-child(6) {background: rgba(255, 62, 72, 0.73);/* 侧面 */transform: rotateY(-90deg) translateZ(100px)}</style>
</head><body><div class="box1"><p> </p><p> </p><p> </p><p> </p><p> </p><p> </p></div>
</body></html>

结语

通过深入了解CSS3的2D与3D转换,你将能够为网页设计注入更多创意和交互性。这不仅是技术的提升,更是对设计艺术的追求。让我们一同穿越维度的大门,用转换打破平面的界限,创造出引人入胜的用户体验。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/623100.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Learning Vision from Models Rivals Learning Vision from Data

Learning Vision from Models Rivals Learning Vision from Data 论文&#xff1a;https://arxiv.org/abs/2312.17742 TL; DR&#xff1a;只使用机造数据进行训练达到了与真实数据训练相当的效果。本文提出了 SynCLR。首先使用 LLM 来根据视觉概念词生成图像描述&#xff0c;再…

WEB 3D技术 three.js 点光源

本文的话 我们来设置一下点光源 点光源其实最直观的就是可以做萤火虫 也可以做星光 点点的效果 我们可以直接在官网中搜索 Pointlight 大家可以在官网这里看一下 其实 SpotLight 聚关灯中的属性 Pointlight 点光源也有的 我们先编写代码如下 import ./style.css import * a…

Codeforces Round 768 (Div. 1) D. Flipping Range(思维题 等价类性质 dp)

题目 思路来源 官方题解 洛谷题解 题解 可操作的最短区间长度肯定是gcd&#xff0c;记为g&#xff0c;然后考虑如何dp 考虑g个等价类&#xff0c;每个等价类i,ig,i2*g,... 每次翻转长度为g的区间&#xff0c;会同时影响到g个等价类总的翻转的奇偶性&#xff0c; 性质一&…

SpringCloud.04.熔断器Hystrix( Spring Cloud Alibaba 熔断(Sentinel))

目录 熔断器概述 使用Sentinel工具 什么是Sentinel 微服务集成Sentinel 配置provider文件&#xff0c;在里面加入有关控制台的配置 实现一个接口的限流 基本概念 重要功能 Sentinel规则 流控规则 简单配置 配置流控模式 配置流控效果 降级规则 SentinelResource…

模拟器安装XPosed框架教程

Xposed框架下载&#xff08;搞不懂就先看完本篇教程再下载&#xff09; 99%的情况只需要下载里面的XPosed鸭就行了 安卓8及以下XPosed框架 - 多开鸭模拟器安装XPosed框架图文视频教程 关于本站XPosed框架的说明 XPosed框架(即XP框架)&#xff0c;由rovo89开发。适用于安卓7以…

把模板作为元函数参数传递。

C模板元编程是一种典型的函数式编程&#xff0c;函数在整个编程体系中处于核心的地位。 这里的函数与一般C程序中定义的函数有所区别&#xff0c;其更接近数学意义上的函 数——是无副作用的映射或变换&#xff1a;在输入相同的前提下&#xff0c;多次调用同一个函数&…

Rsync远程同步,删除大量文件

目录 什么是文本传输&#xff1f; 文件传输工具&#xff1a; Rsync工具介绍 rsync的作用 命令格式 实验配置rsync源服务器 先检查是否有rsync工具 建立/etc/rsyncd.conf 配置文件 为备份账户创建数据文件 给数据文件添加权限 保证所有用户对源目录/var/www/html 都有读…

C练习——杨辉三角

题目&#xff1a; 打印近似杨辉三角&#xff0c;行数n自选 百度找的杨辉三角&#xff0c;参考一下&#xff1a; 解析&#xff1a; 把它的全部元素左对齐&#xff0c;就可以看成近似杨辉三角的样子 1 1 1 1 2 1 1 3 3 1 1 4 6 4 1 …… 每个数等于它上方两数…

CMake tasks.json launch.json

hehedalinux:~/Linux/cmake/cmakeClass$ tree . ├── CMakeLists.txt ├── include │ ├── Gun.h │ └── Soldier.h ├── main.cpp └── src├── Gun.cpp└── Soldier.cpp2 directories, 6 files hehedalinux:~/Linux/cmake/cmakeClass$ launch.json&am…

Flutter 小技巧之升级适配 Xcode15

美好的 2024 从「适配」开始&#xff0c;按照苹果的尿性&#xff0c;2024 春季开始大家将不得使用 Xcode15 来构建 App &#xff0c;另外根据《2024 的 iOS 的隐私清单》 要求&#xff0c;使用 Flutter 的开发者是无法逃避适配 Xcode15 更新的命运。 另外&#xff0c;众所周知…

K 个一组翻转链表(链表反转,固定长度反转)(困难)

优质博文&#xff1a;IT-BLOG-CN 一、题目 给你链表的头节点head&#xff0c;每k个节点一组进行翻转&#xff0c;请你返回修改后的链表。 k是一个正整数&#xff0c;它的值小于或等于链表的长度。如果节点总数不是k的整数倍&#xff0c;那么请将最后剩余的节点保持原有顺序。…

优先级队列(Priority Queue)

文章目录 优先级队列&#xff08;Priority Queue&#xff09;实现方式基于数组实现基于堆实现方法实现offer(E value)poll()peek()isEmpty()isFull() 优先级队列的实现细节 优先级队列&#xff08;Priority Queue&#xff09; 优先级队列是一种特殊的队列&#xff0c;其中的元素…

Spring Boot - 利用Resilience4j-RateLimiter进行流量控制和服务降级

文章目录 Resilience4j概述Resilience4j官方地址Resilience4j-RateLimiter微服务演示Payment processorPOM配置文件ServiceController Payment servicePOMModelServiceRestConfigController配置验证 探究 Rate Limiting请求三次 &#xff0c;观察等待15秒连续访问6次 Resilienc…

【Python小技巧】安装ImageMagick配置环境变量解决moviepy报错问题

文章目录 前言一、报错ImageMagick 找不到二、解决步骤1. 安装ImageMagick2. 配置IMAGEMAGICK_BINARY环境变量 总结 前言 抽空玩玩moviepy&#xff0c;结果合成视频时报错&#xff0c;看着网上的解决办法&#xff0c;真是复杂&#xff0c;这里就给出个简单便捷的方法。 一、报…

Puppeteer让你网页操作更简单(1)屏幕截图

网页自动化设计爬虫工具 中就使用了Puppeteer进行对网页自动化处理&#xff0c;今天就来看看它是什么东西&#xff01; 我们将学习什么? 在本教程中,您将学习如何使用JavaScript自动化和抓取 web。 为此,我们将使用Puppeteer。 Puppeteer是一个Node库API,允许我们控制无头Ch…

Clickhouse表引擎之CollapsingMergeTree引擎的原理与使用

前言 继续上次关于clickhouse的一些踩坑点&#xff0c;今天讲讲另外一个表引擎——CollapsingMergeTree。这个对于引擎对于数据量较大的场景是个不错的选择。注意&#xff0c;选择clickhouse的一般原因都是为了高效率查询&#xff0c;提高用户体验感&#xff0c;说白了就是以空…

MySQL单表的查询练习

作业要求&#xff1a; 作业实现&#xff1a; 首先&#xff0c;创建worker表并插入相关数据 CREATE TABLE worker (部门号 int(11) NOT NULL,职工号 int(11) NOT NULL,工作时间 date NOT NULL,工资 float(8,2) NOT NULL,政治面貌 varchar(10) NOT NULL DEFAULT 群众,姓名 varc…

OpenJDK 和 OracleJDK 哪个jdk更好更稳定,正式项目用哪个呢?关注者

OpenJDK 和 OracleJDK&#xff1a;哪个JDK更好更稳定&#xff0c;正式项目应该使用哪个呢&#xff1f;我会从&#xff0c;从开源性质、更新和支持、功能差异等方面进行比较&#xff0c;如何选择&#xff0c;哪个jdk更好更稳定&#xff0c;正式项目用哪个呢&#xff0c;进行比较…

关于java类与对象的创建

关于java类与对象的创建 我们在前面的文章中回顾了方法的定义和方法的调用&#xff0c;以及了解了面向对象的初步认识&#xff0c;我们本篇文章来了解一下类和对象的关系&#xff0c;还是遵循结合现实的方式去理解&#xff0c;不是死记硬背&#x1f600;。 1、类 类是一种抽…

【InternLM 大模型实战】第五课

LMDeploy 大模型量化部署实践 大模型部署背景模型部署定义&#xff1a;产品形态计算设备 大模型特点内存开销巨大动态shape相对视觉模型&#xff0c;LLM结构简单 大模型部署挑战设备推理服务 大模型部署方案技术点方案云端移动端 LMDeploy 简介高效推理引擎完备易用的工具链支持…