css中2D/3D的变化

news/2025/2/13 21:59:09/

变换可以改变元素的位置、大小、旋转、倾斜等属性,以创建各种动态效果。

一、常用的2D变换:

  1. 平移(translate):使用 translate() 函数来改变元素的位置。可以指定水平和垂直方向的偏移量,如 transform: translate(100px, 50px);

  2. 缩放(scale):使用 scale() 函数来改变元素的大小。可以指定水平和垂直方向的缩放比例,如 transform: scale(1.5, 0.8);

  3. 旋转(rotate):使用 rotate() 函数来旋转元素。可以指定旋转角度,正值表示顺时针旋转,负值表示逆时针旋转,如 transform: rotate(45deg);

  4. 倾斜(skew):使用 skew() 函数来倾斜元素。可以指定水平和垂直方向的倾斜角度,如 transform: skew(10deg, -5deg);

二、3D变换:

CSS提供了更多的变换函数,可以在3D空间中进行操作:

  1. 平移(translate):与2D变换类似,使用 translate3d() 函数指定沿着X、Y、Z轴的偏移量。

  2. 缩放(scale):与2D变换类似,使用 scale3d() 函数指定沿着X、Y、Z轴的缩放比例。

  3. 旋转(rotate):与2D变换类似,使用 rotate3d() 函数指定围绕X、Y、Z轴旋转的角度。

  4. 透视(perspective):使用 perspective() 函数设置元素的透视效果。可以通过调整透视距离来改变元素近大远小的效果。

通过组合和动画,可以在元素上同时应用多个变换,从而创建出更复杂的效果。例如,可以使用过渡(transition)和关键帧动画(keyframes animation)来创建平滑的过渡和动画效果。

三、案例:

使用过渡(transition)创建平滑的过渡效果:

/* 过渡效果 */
.transition {transition-property: background-color;transition-duration: 1s;transition-timing-function: ease;
}/* 鼠标悬停时触发过渡 */
.transition:hover {background-color: black;
}

使用关键帧动画(keyframes animation)创建平滑的动画效果:

/* 关键帧动画 */
@keyframes rotate {0% {transform: rotate(0deg);}100% {transform: rotate(360deg);}
}/* 应用动画 */
.animation {animation-name: rotate;animation-duration: 2s;animation-timing-function: linear;animation-iteration-count: infinite;
}/* 具有动画效果的元素 */
<div class="animation">这是一个旋转动画</div>

.transition 类将在鼠标悬停时触发背景颜色的过渡效果。.animation 类则可以使带有该类的元素执行旋转动画,持续时间为 2 秒,无限循环。


http://www.ppmy.cn/news/1269506.html

相关文章

git-vscode

git-vscode ctrlshiftp 创建分支 create branch 直接切到新的分支了 切换分支 直接点左下角自己选择 vscode中配置仓库 https://blog.csdn.net/zora_55/article/details/129709251 推送tag tag作用就是在 Git 中&#xff0c;标记存储库历史记录中特定提交的一种方式。t…

Redisson分布式锁原理分析

1.Redisson实现分布式锁 在分布式系统中&#xff0c;涉及到多个实例对同一资源加锁的情况&#xff0c;传统的synchronized、ReentrantLock等单进程加锁的API就不再适用&#xff0c;此时就需要使用分布式锁来保证多服务之间加锁的安全性。 常见的分布式锁的实现方式有&#xff…

Redis和MySQL双写一致性实用解析

1、背景 先阐明一下Mysql和Redis的关系&#xff1a;Mysql是数据库&#xff0c;用来持久化数据&#xff0c;一定程度上保证数据的可靠性&#xff1b;Redis是用来当缓存&#xff0c;用来提升数据访问的性能。 关于如何保证Mysql和Redis中的数据一致&#xff08;即缓存一致性问题…

【Qt之QNetworkAccessManager】概述及示例

概述 QNetworkAccessManager类允许应用程序发送网络请求和接收应答 网络访问API是围绕一个QNetworkAccessManager对象构建的&#xff0c;该对象为它发送的请求保存通用配置和设置。它包含代理和缓存配置&#xff0c;以及与此类问题相关的信号&#xff0c;以及可用于监视网络操…

yolov8常用命令

1.运行预测 &#xff08;1&#xff09;运行目标检测模型&#xff1a; yolo predict modelyolov8n.pt sourcebus.jpg &#xff08;2&#xff09;运行目标检测与分割模型 yolo predict modelyolov8n-seg.pt sourcebus.jpg 2.模型训练 复制coco128.yaml更名为myDetect.y…

WebSocket 协议的原理和实践

WebSocket 是一种基于 TCP 的双向通信协议&#xff0c;它可以在客户端和服务器之间建立一个持久连接&#xff0c;并且可以在连接生命周期内进行数据的传输。WebSocket 协议的目的是为了解决 HTTP 协议的一些局限性&#xff0c;比如&#xff1a; HTTP 协议是单向的&#xff1a;…

20231210原始编译NanoPC-T4(RK3399)开发板的Android10的SDK

20231210原始编译NanoPC-T4(RK3399)开发板的Android10的SDK 2023/12/10 17:27 rootrootrootroot-X99-Turbo:~$ rootrootrootroot-X99-Turbo:~$ mkdir nanopc-t4 rootrootrootroot-X99-Turbo:~$ rootrootrootroot-X99-Turbo:~$ rootrootrootroot-X99-Turbo:~$ cd nanopc-t4/ …

k8s 中externalTrafficPolicy应用场景和实践

在Kubernetes&#xff08;K8s&#xff09;中&#xff0c;externalTrafficPolicy 是一个用于控制服务的外部流量的策略。这个字段可以在 Service 的定义中设置&#xff0c;其主要作用是决定服务对外部请求的负载均衡行为。具体来说&#xff0c;externalTrafficPolicy 有两个可选…