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)/ ...
随机推荐
- Python协程你学会了吗?
在学习协程之前,你需要先知道协程是什么?协程又称为微线程,一个程序可以包含多个协程,可以对比与一个进程包含多个线程,因而下面我们来比较协程和线程.我们知道多个线程相对独立,有自己的上下文,切换受系统控 ...
- Mybatis学习(2)以接口的方式编程
前面一章,已经搭建好了eclipse,mybatis,mysql的环境,并且实现了一个简单的查询.请注意,这种方式是用SqlSession实例来直接执行已映射的SQL语句: session.selec ...
- Java线程池中的核心线程是如何被重复利用的?
真的!讲得太清楚了!https://blog.csdn.net/MingHuang2017/article/details/79571529 真的是解惑了 本文所说的"核心线程". ...
- Mysql索引降维 优化查询 提高效率
在前一篇文章中,我们已经介绍了索引.索引的优化规则等等 原文链接:Siam博客 mysql索引优化 在其中我们有引申出组合索引,多个单字段索引冲突两个知识点. 本文章主要是与后者有关联. 在原文中,我 ...
- mongodb的基本命令与常规操作
1. 查看当前数据库的版本号:db.version()2. 查看当前所在数据库:db 默认是test数据库3. 查看当前数据库的连接地址:db.getMongo()4. 查看所有数据库:show da ...
- Hadoop知识总结
------------恢复内容开始------------ Hadoop知识点 Hadoop知识点什么是HadoopHadoop和Spark差异Hadoop常见版本,有哪些特点,一般是如何进行选择H ...
- Docker实现退出container后保持继续运行的解决办法
现象: 运行一个image,例如ubuntu14.04: 1 docker run -it --rm ubuntu:14.04 bash 退出时: 执行Ctrl+D或者执行exit 查看线程: 1 d ...
- python pyinsane应用
import sys from PIL import Image try: import src.abstract as pyinsane except ImportError: import pyi ...
- asp.net 读取 connectionStrings
connectionStrings 在vs.net 2005 beta 2开始,如果你在web.config中使用了数据库连接字符串的配置,那么应该按如下的方法去写: <connectionSt ...
- maven手动添加库文件
项目应用到了ojdbc,dubbo等私有库,maven无法直接下载,需要手动下载后添加到maven本地库里面. 以下以ojdbc为例: 1.下载jar后,cmd添加到本地库: mvn install: ...