CSS变换

CSS变换

根据 CSS 的变换的功能特性,它可以分为位移旋转缩放倾斜透视

也可以分成2D变换和3D变换,2D变换是二维平面上进行的,即 X 轴和 Y 轴。这些变换不涉及 Z 轴。3D 变换允许元素在三维空间中进行操作,这些变换涉及 X 、Y 和 Z 轴。这使得元素可以在视觉上远离或靠近观察者,创造出更加逼真的三维效果。

transform 属性包含多个变换函数时,它的顺序很重要,是从左向右应用的,从左到右乘以变换属性中的每个变换函数。

.element {transform: translate(60px, 60px) scale(1.5, 1.5) rotate(45deg);
}.element {transform: rotate(45deg) scale(1.5, 1.5) translate(60px, 60px);
}

transform 属性中的 translate(60px, 60px) 和 rotate(45deg) 两个变换函数互换了一下位置。最终呈现给用户的结果是完全不同的。

CSS 的变换函数有近 20 种不同的函数,它们分别用来帮助你对元素进行平移、旋转、缩放、倾斜和透视:

  • 平移translate() 、translateX() 、translateY() 、translateZ() 和 translate3d()

  • 旋转rotate() 、rotateX() 、rotateY() 、rotateZ() 和 rotate3d()

  • 缩放scale() 、scaleX() 、scaleY() 、scaleZ() 和 scale3d()

  • 倾斜(有时也称扭曲) :skew() 、skewX() 和 skewY() 。注意,它没有 3D 空间的概念,在 CSS 中并没有 skewZ() 和 skew3d() 两个函数

  • 透视perspective() ,它有对应的一个 CSS 属性,即 perspective

除了上面所列的 CSS 变换函数之外,还有两个矩阵函数,它们分别是 2D 矩阵 matrix() 和 3D 矩阵 matrix3d() 。

平移函数 translate()

  • x 轴移动语法 : transform: translateX(x);
  • y 轴移动语法 : transform: translateY(y);
  • x / y 轴移动语法 : transform: translate(x, y);
  • 沿 x 轴水平移动,正值向右移动,负值向左移动

  • 沿 y 轴上下移动,正值向下移动,负值向上移动

  • 可以是一个长度值(<length>)、百分比值(<percentage>),还可以是其他的数学函数表达式值

 注意:translate() 函数的参数是个百分比值时,该百分比值是相对于元素自身的大小计算,而不是父容器尺寸计算,即 x 轴方向相对于元素的 width 计算,y 轴方向相对于元素的 height 计算。

/* 只沿 x 轴移动元素 */
.element {transform: translateX(var(--positionX));/* 等同于 */transform: translate(var(--positionX), 0);
}/* 只沿 y 轴移动元素*/
.element {transform: translateY(var(--positionY));/* 等同于 */transform: translate(0, var(--positionY));
}

 缩放函数 scale()

  • scale() 函数的值为 1 时,元素将保持原样不变,既不放大,也不缩小

  • scale() 函数的值为 0 时,元素将缩小到不可见

  • scale() 函数的值大于 1 时,元素将会放大

  • scale() 函数的值小于 1 时,元素将会缩小

  • scale() 函数可以被视为 scaleX() 和 scaleY() 的简写函数

  • scaleX() 函数:用于指定元素在水平方向上的缩放倍数,而垂直方向保持不变

  • scaleY() 函数:用于指定元素在垂直方向上的缩放倍数,而水平方向保持不变

注意当 scale() 函数传递两个值时,只要其中有一个值为 0 ,元素都会被缩小到不可见。另外,当两个值相同时,第二个参数值(y 轴)可以省略不写 。

scale3d() 函数允许同时指定三个方向(xy 和 z)上的缩放倍数,用于三维变换。

  • x:表示水平方向的缩放倍数。

  • y:表示垂直方向的缩放倍数。

  • z:表示在Z轴上的缩放倍数。

    电视开关动画实例: 

    @layer animation {@keyframes closeTV {from {transform: scale(1, 1);filter: brightness(100%);}to {transform: scale(0.5, 0);filter: brightness(800%);}}.switch:has(:checked) ~ .video > video {animation: closeTV 0.28s ease-out both;}
    }
    

    旋转函数 rotate()

  • rotateX() 函数 :元素绕 x 轴进行 3D 旋转

  • rotateY() 函数:元素绕 y 轴进行 3D 旋转

  • rotateZ() 函数:元素绕 z 轴进行 3D 旋转

  • rotate3d() 函数:元素在三维空间中绕指定轴进行旋转

如果 rotate() 函数使用正角度值,则元素进行顺时针旋转;反之元素进行逆时针旋转

rotate() 函数的值除了正负角度值之外,你还可以使用其他描述角度值的单位,比如:

  • 角度值( deg  :一个完整的圆是 360deg

  • 梯度值( grad  :一个完整的圆是 400grad

  • 弧度值( rad  :一个完整的圆是  弧度

  • 圈( turn  :一个完整的圆是 1turn

1 度(deg)  = 1.11111 梯度(grad)
1 度(deg)  = π ÷ 180 弧度(rad)
1 圈(turn) = 360 度(deg)

rotateZ() 和 rotate() 的视觉效果上是一样的

两个 3D 变换函数,可以由单个轴的变换函数组合而成,即:

translate3d(tx, ty, tz) = translateX(tx) translateY(ty) translateZ(tz)
scale3d(sx, sy, sz) = scaleX(sx) scaleY(sy) scaleZ(sz) 

倾斜函数 skew()

 skew()通过沿水平方向 x 轴和(或)垂直方向 y 轴倾斜元素来扭曲元素,从而呈现出倾斜的外观:

  • skew() :接受两个参数,第一个是水平方向倾斜元素的角度,第二个是垂直方向倾斜元素的角度,如果第二个参数省略不写,将表示垂直方向不做任何角度的倾斜,即为 0

  • skewX() :使元素沿着水平方向按指定的角度倾斜元素

  • skewY() :使元素沿着垂直方向按指定的角度倾斜元素

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

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

相关文章

BioXCell,1H6--InVivoMAb anti-canine CD34

1H6单克隆抗体与犬CD34发生反应。CD34是一种I型单体唾液酸粘蛋白样糖蛋白&#xff0c;存在于许多干细胞群体中。CD34由骨髓和外周血中的造血祖细胞以及一些间充质干细胞、基质细胞、胚胎成纤维细胞、肿瘤细胞和成人血管内皮细胞表达。CD34经常被用作量化用于造血干细胞移植后该…

【第二十九篇】BurpSuite杂项综合

文章目录 Intruder模块URL编码Grep检索提取logger日志模块Intruder模块URL编码 假设我们需要对GET请求包中的URL目录进行爆破FUZZ: example.com/xxxx(文件名)Intruder模块会自动对我们的文件名字典进行URL编码 例如payload为1.txt时,burp对其进行URL编码并连接到example.c…

vulhub之fastjson篇-1.2.27-rce

一、启动环境 虚拟机:kali靶机:192.168.125.130/172.19.0.1(docker地址:172.19.0.2) 虚拟机:kali攻击机:192.168.125.130/172.19.0.1 本地MAC:172.XX.XX.XX 启动 fastjson 反序列化导致任意命令执行漏洞 环境 1.进入 vulhub 的 Fastjson 1.2.47 路径 cd /../../vulhub/fa…

代码算法训练营day13 | 239. 滑动窗口最大值、347.前 K 个高频元素

day13: 239. 滑动窗口最大值1、&#xff08;暴力算法&#xff09;思路&#xff1a;2、&#xff08;单调队列&#xff09;思路&#xff1a; 347.前 K 个高频元素 239. 滑动窗口最大值 题目链接 状态&#xff1a;暴力ok 文档&#xff1a;programmercarl.com 1、&#xff08;暴力算…

[C语言]——动态内存经典笔试题分析

目录 一.题目1 1.运行结果 2.分析 3.问题所在 4.更正 二.题目2 1.运行结果 2.分析 3.问题所在 4.更正 三.题目3 1.问题所在 2.更正&#xff1a; 四.题目4 一.题目1 void GetMemory(char *p){p (char *)malloc(100);}void Test(void){char *str NULL;GetMemory…

图像版PDF文件OCR识别转换为文本的3款免费工具软件

图像版PDF文件里面都是图片&#xff0c;要先通过OCR技术识别出文本&#xff0c;然后才能进行进一步处理编辑。下面是3个免费的PDF文件OCR识别软件工具&#xff1a; ●简可信PDF批量识别工具 简可信PDF批量识别工具是一款专门用于将PDF文件进行批量OCR&#xff08;光学字符识别…

三星:HBM4的16层堆叠技术验证成功

随着人工智能、大数据分析、云计算及高端图形处理等领域对高速、高带宽存储需求的激增&#xff0c;下一代高带宽内存&#xff08;High Bandwidth Memory, HBM&#xff09;——HBM4已成为全球存储芯片巨头三星、SK海力士和美光竞相追逐的技术高地。 随着AI、机器学习以及高性能…

【大数据】常见问题解决1

目录 一、解决虚拟机ping www.baidu.com 不通问题 二、解决HBase集群中的Hmaster节点刚启动就消息 三、 Hadoop3.x和Hadoop2.x的区别 一、解决虚拟机ping www.baidu.com 不通问题 1&#xff09;首先保证主机连上网络 2&#xff09;sudo vim /etc/resolv.conf 3&#xff09;…

Linux-等待子进程

参考资料&#xff1a;《Linux环境编程&#xff1a;从应用到内核》 僵尸进程 进程退出时会进行内核清理&#xff0c;基本就是释放进程所有的资源&#xff0c;这些资源包括内存资源、文件资源、信号量资源、共享内存资源&#xff0c;或者引用计数减一&#xff0c;或者彻底释放。…

(1)步态识别论文研读GaitSet: Regarding Gait as a Set for Cross-View Gait Recognition

题目&#xff1a;GaitSet 将跨视角步态识别识别任务中的步态视为一个集合 摘要&#xff1a; 作为一个可以在一定距离内识别的独特的生物特征&#xff0c;步态识别在预防犯罪、法医鉴定&#xff0c;和社会保障等方面具有广阔的应用前景&#xff0c;为了描述一个步态&#xff0…

RabbitMQ基本使用及企业开发中注意事项

目录 一、基本使用 二、使用注意事项 1. 生产者重连机制 - 保证mq服务是通的 2. 生产者确认机制 - 回调机制 3. MQ的可靠性 4. Lazy Queue模式 5. 消费者确认机制 一、基本使用 部署完RabbitMQ有两种使用方式&#xff1a; 网页客户端Java代码 MQ组成部分&#xff1a;…

【深度学习】图像风格混合——StyleGAN原理解析

1、前言 上一篇&#xff0c;我们讲了PGGAN的模型原理&#xff0c;本章我们就来讲解一下StyleGAN&#xff0c;这个模型能够自由控制图像的风格&#xff0c;细节变化等等&#xff0c;生成用户想要的图像&#xff0c;甚至从某种程度上说&#xff0c;其可以实现AI换脸。 PS&#…