CSS3 transform转换
1.先说说css的坐标系:
x轴的正方向就是水平向右的方向
y轴的正方向就是垂直向下的方向
z轴的正方向就是屏幕到用户的方向
2.位移
- 说明:位移是转换属性中的一个值,包含2d与3d
| 属性值 | 说明 |
|---|---|
| translate(x,y) | 2d位移 |
| translateX(n) | 2d位移,设置x轴方向的位移 |
| translateY(n) | 2d位移,设置y轴方向的位移 |
| translate3d(x,y,z) | 3d位移 |
| translateZ(n) | 3d位移,设置z轴方向的位移 |
- 参数值:参数可以是具体的像素值,也可以是百分比(基于自己的宽高)
- 注意:行内元素无法应用translate
transform: translate(200px,0);

3.缩放
- 说明:缩放是转换属性中的一个值
| 属性值 | 说明 |
|---|---|
| scale(x,y) | 如果只传了一个值,则表示x,y都是这个值 |
| scaleX(n) | 设置x轴方向的缩放 |
| scaleY(n) | 设置y轴方向的缩放 |
| scale3d(x,y,z) | 3d缩放 |
transform:scale(2);

- 注意:即使使用scale()将元素方法缩小了,在使用getComputedStyle()获取元素大小时值永远都是不变的。属性事件对象中的event.offsetX/event.offsetY也永远是scale=1时的大小,也就是说,坐标轴会跟着缩放
3.旋转
- 说明:旋转是转换属性中的一个值
| 属性值 | 说明 |
|---|---|
| rotate(angle) | 2d旋转,顺时针方向 |
| rotateX(angle) | 2d旋转,围绕x轴旋转 |
| rotateY(angle) | 2d旋转,围绕y轴旋转 |
| rotateZ(angle) | 2d旋转,围绕z轴旋转 |
| rotate3d(x,y,z,45deg) | 3d旋转:x,y,z的值将构成一个矢量,即轴的方向,第四个值为旋转角度 |
transform:rotate(45deg)

4.转换基点
- 相关属性:transform-origin,用来设置元素transform时的基点(x,y,z),默认为元素的中心,也就是center center
| 示例值类型 | 示例 |
|---|---|
| 具体数值 | 50px |
| 关键字 | left right top bottom center |
| 百分比 | 20%(基于元素大小) |
我们前面的旋转的例子就是基于元素中心进行旋转的

将转换基点修改成左上角
transform-origin: 0 0;

5.3d模式
如果元素的transform涉及了3个维度,需要开启其3D模式才能才有效果,否则只能看见一个平面,如图,右边的方块围绕Y轴进行旋转,在2D模式下,我们只能看见其宽度变窄,无法得知其旋转方向

如果需要开启3D视角,需要在其父容器中设置3d模式和视距(视距:近的的物体就看上去就大,渲染出来尺寸也大,远的物体看上去就就小,渲染出来尺寸也小。如果一个物体的translateZ为正值,说明他凸出了屏幕水平,离观众越近,那么他实际渲染的尺寸会小于设定的尺寸,反正则亦然。perspective的值越大,则实际渲染的尺寸与设定的尺寸相差的越小)
transform-style: preserve-3d;
perspective: 1000px;

rotateX效果
transform: rotateX(360deg);

rotateY效果
transform: rotateY(360deg);

rotateZ效果
transform: rotateZ(360deg);

6.scale与translate共用
- 注意:如果scale()在前,则实际位移 = 设定的位移 * scale的倍数,建议把translate()写在前面
transform: translate(300px,0) scale(2) ;
//以 容器的中心点来计算,容器位移了300px
transform: scale(2) translate(200px,0);
//以 容器的中心点来计算,容器位移了400px
transform: scale(3) translate(100px,0);
//以 容器的中心点来计算,容器位移了300px
transform: scale(0.5) translate(200px,0);
//以 容器的中心点来计算,容器位移了100px
7.translate()和rotate()共用
- 注意:rotate()写在translate前面的话会改变坐标系,从而改变translate的设定,所以是要是设置多值的话,建议把translate()写在前面
CSS3 transform转换的更多相关文章
- CSS3 Transform变形(2D转换)
Transform:对元素进行变形:Transition:对元素某个属性或多个属性的变化,进行控制(时间等),类似flash的补间动画.但只有两个关键贞.开始,结束.Animation:对元素某个属性 ...
- 【CSS3】 理解CSS3 transform中的Matrix(矩阵)
理解CSS3 transform中的Matrix(矩阵) by zhangxinxu from http://www.zhangxinxu.com 本文地址:http://www.zhangxinxu ...
- 理解CSS3 transform中的Matrix(矩阵)
一.哥,我被你吓住了 打架的时候会被块头大的吓住,学习的时候会被奇怪名字吓住(如“拉普拉斯不等式”).这与情感化设计本质一致:界面设计好会让人觉得这个软件好用! 所以,当看到上面“Matrix(矩阵) ...
- css3 2d转换3d转换以及动画的知识点汇总
css3 2d转换 2d转换的方法: 1.移动 translate(x, y) 可以改变元素的位置,x.y可为负值: 2.缩放 scale(x, y) 可以对元素进行水平和垂直方向的缩放,x.y的取值 ...
- 20190404-transition、transform转换、animation、媒体查询
目录 1.transition过渡 1.1简写:transiton:transition-property | transition-duration | transition-timing-func ...
- CSS3 transform 属性
CSS3 transform 属性 语法: transform: none|transform-functions; 值 描述 none 定义不进行转换. matrix(n,n,n,n,n,n) 定义 ...
- 基于css3 transform实现散乱的照片排列
分享一款基于css3 transform实现散乱的照片排列.这是一款简单零散的css3相册排列特效下载.效果图如下: 在线预览 源码下载 实现的代码. html代码: <div class= ...
- 理解CSS3 transform中的Matrix(矩阵)——张鑫旭
by zhangxinxu from http://www.zhangxinxu.com本文地址:http://www.zhangxinxu.com/wordpress/?p=2427 一.哥,我被你 ...
- CSS3 Transform变形理解与应用
CSS3 Transform变形理解与应用 Transform:对元素进行变形:Transition:对元素某个属性或多个属性的变化,进行控制(时间等),类似flash的补间动画.但只有两个关键贞.开 ...
- css3 transform:scale(x)实现字体的缩放:
css3 transform:scale(x)字体的缩放: transform:scale(x),针对于整体的缩放,缩放的整体包括宽,高,背景.这自然对于内联元素就无法使用此属性,最好使用无属性的sp ...
随机推荐
- Figma 学习笔记 – Color
大纲 Figma 的颜色是通过 FIll 实现的 (Fill 还有其它功能比如 fill 图片) 整体大概长这样, 我们一个一个看 颜色和 opacity
- mongo查看服务状态
转载请注明出处: 查看数据库列表 show dbs 查看当前数据库 db 查看集合列表 show collections 查看数据库的状态 db.stats() 查看集合的状态 db.collecti ...
- PTA甲级—图
1.图的遍历 1013 Battle Over Cities (25 分) 一种方法使用dfs求连通块的个数 #include <cstdio> #include <cstring& ...
- LeetCode 730. Count Different Palindromic Subsequences (区间DP)
题意 给一个字符串S,求它所有子序列中不同非空回文串的数量.字符串由 'a' 'b' 'c' 'd' 四个字母组成. 由于题目要求的是不同回文串. abba 的回文串子序列为 a,b,aba,abba ...
- less 是什么?为什么使用less?
less 是css的预处理器,是动态语言,赋予了css动态的特性,如继承,变量,函数等,less可以执行在客户端和服务端: 为什么使用less a)less 的结构简单,便于扩展 b)实现多重继承 c ...
- 淘宝程序员没活硬整?在 Excel 和 VSCode 中购物!
大家好,我是程序员鱼皮,最近某宝网站的改进,属实是有点 "新" 了. 你敢相信这是一个购物网站么? 你可以在 Excel 表格中挑选商品进行购物,还原度极高,这两个图表更是点睛之笔 ...
- 4.flask 源码解析:上下文
目录 一.flask 源码解析:上下文 1.1 上下文(application context 和 request context) 1.2 Update: 为什么要用 LocalProxy Flas ...
- Python 潮流周刊#72:Python 3.13.0 最终版已发布!(摘要)
本周刊由 Python猫 出品,精心筛选国内外的 250+ 信息源,为你挑选最值得分享的文章.教程.开源项目.软件工具.播客和视频.热门话题等内容.愿景:帮助所有读者精进 Python 技术,并增长职 ...
- CSP模拟 小 trick 总结 (持续施工中)
虽然这篇博客来的有点晚,但还是写了,欢迎dalao补充( (很杂,建议先浏览目录) 1.分块.莫队有关: \(\color{brown}(1)一个真正的回滚莫队(感谢\ Qyun\ 的讲解):\) $ ...
- SqlUtils 使用
一.前言 随着 Solon 3.0 版本发布,新添加的 SqlUtils 接口,用于操作数据库,SqlUtils 是对 Jdbc 原始接口的封装.适合 SQL 极少或较复杂,或者 ORM 不适合的场景 ...