CSS Transform完全指南 #flight.Archives007
Title/ CSS Transform完全指南 #flight.Archives007
序: 第7天了! 终身学习, 坚持创作, 为生活埋下微小的信仰. 我是
忘我思考,共同进步!简介: 一篇最简约高效的CSS Transform教程.
Tag/ Transform介绍
CSS的 transform 可以让元素产生变形效果,比如旋转,缩放,倾斜或平移
element {
transform: scale(0.5) translate(10px, 10px); /*`transform` 支持同时指定多个函数.*/
}
上面代码中 element 会缩放一半大小, 同时向右和向下各平移 10px.
接下来逐一介绍现支持的所有 Transform 函数.
Tag/ Transform 函数介绍
Matrix(矩阵计算)相关函数
matrix3d(a1, b1, c1, d1, a2, b2, c2, d2, a3, b3, c3, d3, a4, b4, c4, d4)这个函数涉及高等数学知识, 矩阵变换, 使用非常复杂 ,随后介绍的
rotate,scale,skew,translate函数都是基于这个matrix函数实现的但是在实战中直接使用这个函数的情况不大, 多数是间接使用基于该方法实现的函数, 所以本文不详细介绍该方法.
就像Canvas中的
webgl, 在实战中一般都是使用基于webgl实现的JS库, 如three.js关于
matrix矩阵的详细内容可以参见 https://www.zhangxinxu.com/wordpress/2012/06/css3-transform-matrix-矩阵/matrix(a, b, c, d, tx, ty)这个函数是
matrix3d(a, b, 0, 0, c, d, 0, 0, 0, 0, 1, 0, tx, ty, 0, 1)的简写形式.
Perspective(透视深度)相关函数
perspective(l)l:<length>, 表示透视深度, 在值为正数时生效
Rotate(旋转)相关函数
rotate3d(x, y, z, a)x,y,z,a:<angle>, 横坐标, 纵坐标, Z坐标 和 顺时针旋转的角度rotate(a)a:<angle>, 表示顺时针旋转的角度rotateX(a)a:<angle>, 表示横坐标旋转的角度rotateY(a)a:<angle>, 表示纵坐标旋转的角度rotateZ(a)a:<angle>, 表示Z坐标旋转的角度
Scale(缩放)相关函数
scale3d(sx, sy, sz)sx,sy,sz:<percentage>, 在X轴, Y轴, Z轴上的缩放大小.参数取值为
1时不进行缩放处理, 在[0~1]区间按比例缩小, 在[>1]时按比例放大.参数取负值时元素将沿原点中心翻转.
scale(sx, [sy])sx,sy(可选):<percentage>, 在X轴, Y轴上的缩放大小.scaleX(s)s:<percentage>, 在X轴上的缩放大小.scaleY(s)s:<percentage>, 在Y轴上的缩放大小.scaleZ(s)s:<percentage>, 在Z轴上的缩放大小.
Skew(倾斜)相关函数
skew(ax, [ay])ax,ay(可选):<angle>, 元素沿X轴和Y轴倾斜的角度skewX(a)a:<angle>, 元素沿X轴倾斜的角度skewY(a)a:<angle>, 元素沿Y轴倾斜的角度
Translate(平移)相关函数
备注: translate 是一个CSS属性, 可以单独使用, 用法与函数一致.
translate3d(tx, ty, tz)tx,ty,tz:<length>, 元素沿X轴,Y轴和Z轴平移的距离.translate(tx, [ty])tx,ty(可选):<length>, 元素沿X轴和Y轴平移的距离.translateX(t)t:<length>, 元素沿X轴平移的距离.translateY(t)t:<length>, 元素沿Y轴平移的距离.translateZ(t)t:<length>, 元素沿Z轴平移的距离.
Tag/ transform-origin 属性介绍
transform-origin 属性可以更改元素变形的原点, 默认值为 center
可取值:
transform-origin: 2px; /*如果只有一个值, 则表示原点的横坐标*/
transform-origin: 2px 2em; /*如果有两个值, 则分别表示原点的横坐标和纵坐标*/
transform-origin: left top; /*可以使用关键字: left, center, right, top 或 bottom*/
transform-origin: top right; /*如果两个值都是关键字, 则可以先纵坐标, 后横坐标*/
transform-origin: 20px left; /*这是错误的表示. 如果关键字和长度单位同时使用, 不可以都表示纵坐标或横坐标*/
transform-origin: 2px 10% 20px; /*如果有三个值, 则前两个值用法不变, 第三个值表示原点的深度(Z坐标)*/
->> Reference link
MDN中文文档 https://developer.mozilla.org/zh-CN/docs/Web/CSS/transform
MDN 英文文档 https://developer.mozilla.org/en-US/docs/Web/CSS/transform
transform-origin属性介绍 https://developer.mozilla.org/zh-CN/docs/Web/CSS/transform-originCSS-Tricks https://css-tricks.com/almanac/properties/t/transform/
->> Version History
现在版本为V1.0, 下一版预计添加两处(函数和transform-origin) flight.Playground 以便互动式理解
详见 Github(@flightmakers)
2021.8.17 在掘金发布V0.1
2021.8.18 补全内容. 发布V1.0
CSS Transform完全指南 #flight.Archives007的更多相关文章
- CSS Transform完全指南(第二版) #flight.Archives007
Title/ CSS Transform完全指南(第二版) #flight.Archives007 序: 第7天了! 终身学习, 坚持创作, 为生活埋下微小的信仰. 我是忘我思考,共同进步! 简介: ...
- CSS Flex布局完全指南 #flight.Archives002
Title/CSS Flex布局完全指南 #flight.Archives002 序(from Ruanyf) : 网页布局(layout)是 CSS 的一个重点应用. 布局的传统解决方案,基于盒状模 ...
- CSS Grid 布局(Grid Layout)完全指南 #flight.Archives003
Title/ CSS Grid 布局(Grid Layout)完全指南 #flight.Archives003 序 : 写完这篇文章后,我准备一直做下去了,包括flight的各个分区,也看到前方的路. ...
- CSS居中完全指南——构建CSS居中决策树
CSS居中完全指南--构建CSS居中决策树 本文总结CSS居中,包括水平居中和垂直居中.本文相当于CSS决策树,下次再遇到CSS居中问题时有章可循. 参考Centering in CSS: A Com ...
- CSS 动画一站式指南
CSS 动画一站式指南 目录 CSS 动画一站式指南 1. CSS 动画 1.1 变换 1.1.1 变换属性介绍 1.1.2 变换动画实践 1.2 过渡 1.2.1 过渡属性介绍 1.2.2 过渡动画 ...
- No.3 - CSS transition 和 CSS transform 配合制作动画
课程概述 作业提交截止时间:09-01 任务目的 深度理解掌握 transition-timing-function 以及它的意义 学会配合使用 CSS transform 和CSS transiti ...
- CSS Transform / Transition / Animation 属性的区别
back21 Jun 2011 Category: tech Tags: css 最近想UI的动画转到css3能吃进3d加速的属性上面来以加强动画的连贯性.只是对于css几个新加的属性不太熟悉,常常容 ...
- HTML 5与CSS 3权威指南(第2版·上册) 中文pdf扫描版
HTML5与CSS3权威指南(第2版·上册)已经成为HTML 5与CSS 3图书领域的一个标杆,被读者誉为“系统学习HTML 5与CSS 3技术的最佳指导参考书之一”和“Web前端工程师案头必备图书之 ...
- Html CSS transform matrix3d 3D转场特效
Html CSS transform matrix3d 3D转场特效 透视矩阵 2n/(r-l) 0 (r+l)/(r-l) 0 0 2n/(t-b) (t+b)/(t-b) 0 0 0 (n+f)/ ...
随机推荐
- CentOS-Docker搭建VeryNginx
下载镜像 $ docker pull camil/verynginx $ cd /home GIT克隆(yum install git -y) $ git clone https://github.c ...
- linux sort uniq命令详解
sort 功能说明:将文本文件内容加以排序,sort可针对文本文件的内容,以行为单位来排序. sort [-bcdfimMnr][-o<输出文件>][-t<分隔字符>][+&l ...
- buu 简单注册器
一.本身对安卓逆向这块不是很熟悉,为了看这题稍微了解了一下,原来安卓虚拟机解释运行的是dex文件,和java的字节码不一样,然后是smail语法,这块我不会,所以找个了个神器来反编译2333,然后这题 ...
- 【保姆级】Python项目(Flask网页)部署到Docker的完整过程
大家好,我是辰哥~ 前提:相信看到这篇文章的读者应该已经学会了Docker的安装以及Docker的基本使用,如果还不会的可以参考我之前的文章进行详细学习! 1.安装版:2300+字!在不同系统上安装D ...
- ZooKeeper 分布式锁 Curator 源码 01:可重入锁
前言 一般工作中常用的分布式锁,就是基于 Redis 和 ZooKeeper,前面已经介绍完了 Redisson 锁相关的源码,下面一起看看基于 ZooKeeper 的锁.也就是 Curator 这个 ...
- 记两道最近做的pwn题(ciscn_2019)
这两题为什么要记录呢,一个是我发现网上很多教程没写清楚(也可能是我太菜了),二是细节点很多,不同的大佬方式不太一样,有很多细节需要注意 ciscn_2019_es_2 这题是栈迁移的题,先上exp 1 ...
- Linux | 压缩与解压详解
tar tar 命令用于对文件进行打包压缩或解压,格式: tar [选项][文件] tar命令的参数及其作用 参数 作用 -c 创建压缩文件 -x 解开压缩文件 -t 查看压缩包内有哪些文件 -z 用 ...
- java基础---集合(2)
一. Set 集合 java.util.Set集合是Collection集合的子集合,与List集合平级.该集合中元素没有先后放入次序,且不允许重复. 存储的数据在底层数组中并非按照数组索引的顺序添加 ...
- Django基础07篇 ORM操作
1.新增(类似数据库操作的insert) # 新增 #方式一: models.Category.objects.create(name='MySQL') #方式二: c = models.Catego ...
- C语言:冒泡排序例子
//冒泡排序 //14个数字排序:14个数的组合:14*13/2=91次 理论上比较91次 ,实际只有39次进行了变量交换 #include <stdio.h> void bubble_s ...