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(矩阵计算)相关函数

  1. 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-矩阵/

  2. 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(透视深度)相关函数

  1. perspective(l)

    l: <length>, 表示透视深度, 在值为正数时生效

Rotate(旋转)相关函数

  1. rotate3d(x, y, z, a)

    x,y,z,a: <angle>, 横坐标, 纵坐标, Z坐标 和 顺时针旋转的角度

  2. rotate(a)

    a: <angle>, 表示顺时针旋转的角度

  3. rotateX(a)

    a: <angle>, 表示横坐标旋转的角度

  4. rotateY(a)

    a: <angle>, 表示纵坐标旋转的角度

  5. rotateZ(a)

    a: <angle>, 表示Z坐标旋转的角度

Scale(缩放)相关函数

  1. scale3d(sx, sy, sz)

    sx, sy, sz: <percentage>, 在X轴, Y轴, Z轴上的缩放大小.

    参数取值为 1 时不进行缩放处理, 在 [0~1] 区间按比例缩小, 在 [>1] 时按比例放大.

    参数取负值时元素将沿原点中心翻转.

  2. scale(sx, [sy])

    sx, sy(可选): <percentage>, 在X轴, Y轴上的缩放大小.

  3. scaleX(s)

    s: <percentage>, 在X轴上的缩放大小.

  4. scaleY(s)

    s: <percentage>, 在Y轴上的缩放大小.

  5. scaleZ(s)

    s: <percentage>, 在Z轴上的缩放大小.

Skew(倾斜)相关函数

  1. skew(ax, [ay])

    ax, ay(可选): <angle>, 元素沿X轴和Y轴倾斜的角度

  2. skewX(a)

    a: <angle>, 元素沿X轴倾斜的角度

  3. skewY(a)

    a: <angle>, 元素沿Y轴倾斜的角度

Translate(平移)相关函数

备注: translate 是一个CSS属性, 可以单独使用, 用法与函数一致.

  1. translate3d(tx, ty, tz)

    tx, ty, tz: <length>, 元素沿X轴,Y轴和Z轴平移的距离.

  2. translate(tx, [ty])

    tx, ty(可选): <length>, 元素沿X轴和Y轴平移的距离.

  3. translateX(t)

    t: <length>, 元素沿X轴平移的距离.

  4. translateY(t)

    t: <length>, 元素沿Y轴平移的距离.

  5. 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-origin

CSS-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的更多相关文章

  1. CSS Transform完全指南(第二版) #flight.Archives007

    Title/ CSS Transform完全指南(第二版) #flight.Archives007 序: 第7天了! 终身学习, 坚持创作, 为生活埋下微小的信仰. 我是忘我思考,共同进步! 简介: ...

  2. CSS Flex布局完全指南 #flight.Archives002

    Title/CSS Flex布局完全指南 #flight.Archives002 序(from Ruanyf) : 网页布局(layout)是 CSS 的一个重点应用. 布局的传统解决方案,基于盒状模 ...

  3. CSS Grid 布局(Grid Layout)完全指南 #flight.Archives003

    Title/ CSS Grid 布局(Grid Layout)完全指南 #flight.Archives003 序 : 写完这篇文章后,我准备一直做下去了,包括flight的各个分区,也看到前方的路. ...

  4. CSS居中完全指南——构建CSS居中决策树

    CSS居中完全指南--构建CSS居中决策树 本文总结CSS居中,包括水平居中和垂直居中.本文相当于CSS决策树,下次再遇到CSS居中问题时有章可循. 参考Centering in CSS: A Com ...

  5. CSS 动画一站式指南

    CSS 动画一站式指南 目录 CSS 动画一站式指南 1. CSS 动画 1.1 变换 1.1.1 变换属性介绍 1.1.2 变换动画实践 1.2 过渡 1.2.1 过渡属性介绍 1.2.2 过渡动画 ...

  6. No.3 - CSS transition 和 CSS transform 配合制作动画

    课程概述 作业提交截止时间:09-01 任务目的 深度理解掌握 transition-timing-function 以及它的意义 学会配合使用 CSS transform 和CSS transiti ...

  7. CSS Transform / Transition / Animation 属性的区别

    back21 Jun 2011 Category: tech Tags: css 最近想UI的动画转到css3能吃进3d加速的属性上面来以加强动画的连贯性.只是对于css几个新加的属性不太熟悉,常常容 ...

  8. HTML 5与CSS 3权威指南(第2版·上册) 中文pdf扫描版​

    HTML5与CSS3权威指南(第2版·上册)已经成为HTML 5与CSS 3图书领域的一个标杆,被读者誉为“系统学习HTML 5与CSS 3技术的最佳指导参考书之一”和“Web前端工程师案头必备图书之 ...

  9. 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)/ ...

随机推荐

  1. Python协程你学会了吗?

    在学习协程之前,你需要先知道协程是什么?协程又称为微线程,一个程序可以包含多个协程,可以对比与一个进程包含多个线程,因而下面我们来比较协程和线程.我们知道多个线程相对独立,有自己的上下文,切换受系统控 ...

  2. Mybatis学习(2)以接口的方式编程

    前面一章,已经搭建好了eclipse,mybatis,mysql的环境,并且实现了一个简单的查询.请注意,这种方式是用SqlSession实例来直接执行已映射的SQL语句: session.selec ...

  3. Java线程池中的核心线程是如何被重复利用的?

    真的!讲得太清楚了!https://blog.csdn.net/MingHuang2017/article/details/79571529 真的是解惑了 本文所说的"核心线程". ...

  4. Mysql索引降维 优化查询 提高效率

    在前一篇文章中,我们已经介绍了索引.索引的优化规则等等 原文链接:Siam博客 mysql索引优化 在其中我们有引申出组合索引,多个单字段索引冲突两个知识点. 本文章主要是与后者有关联. 在原文中,我 ...

  5. mongodb的基本命令与常规操作

    1. 查看当前数据库的版本号:db.version()2. 查看当前所在数据库:db 默认是test数据库3. 查看当前数据库的连接地址:db.getMongo()4. 查看所有数据库:show da ...

  6. Hadoop知识总结

    ------------恢复内容开始------------ Hadoop知识点 Hadoop知识点什么是HadoopHadoop和Spark差异Hadoop常见版本,有哪些特点,一般是如何进行选择H ...

  7. Docker实现退出container后保持继续运行的解决办法

    现象: 运行一个image,例如ubuntu14.04: 1 docker run -it --rm ubuntu:14.04 bash 退出时: 执行Ctrl+D或者执行exit 查看线程: 1 d ...

  8. python pyinsane应用

    import sys from PIL import Image try: import src.abstract as pyinsane except ImportError: import pyi ...

  9. asp.net 读取 connectionStrings

    connectionStrings 在vs.net 2005 beta 2开始,如果你在web.config中使用了数据库连接字符串的配置,那么应该按如下的方法去写: <connectionSt ...

  10. maven手动添加库文件

    项目应用到了ojdbc,dubbo等私有库,maven无法直接下载,需要手动下载后添加到maven本地库里面. 以下以ojdbc为例: 1.下载jar后,cmd添加到本地库: mvn install: ...