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

  1. CSS3 Transform变形(2D转换)

    Transform:对元素进行变形:Transition:对元素某个属性或多个属性的变化,进行控制(时间等),类似flash的补间动画.但只有两个关键贞.开始,结束.Animation:对元素某个属性 ...

  2. 【CSS3】 理解CSS3 transform中的Matrix(矩阵)

    理解CSS3 transform中的Matrix(矩阵) by zhangxinxu from http://www.zhangxinxu.com 本文地址:http://www.zhangxinxu ...

  3. 理解CSS3 transform中的Matrix(矩阵)

    一.哥,我被你吓住了 打架的时候会被块头大的吓住,学习的时候会被奇怪名字吓住(如“拉普拉斯不等式”).这与情感化设计本质一致:界面设计好会让人觉得这个软件好用! 所以,当看到上面“Matrix(矩阵) ...

  4. css3 2d转换3d转换以及动画的知识点汇总

    css3 2d转换 2d转换的方法: 1.移动 translate(x, y) 可以改变元素的位置,x.y可为负值: 2.缩放 scale(x, y) 可以对元素进行水平和垂直方向的缩放,x.y的取值 ...

  5. 20190404-transition、transform转换、animation、媒体查询

    目录 1.transition过渡 1.1简写:transiton:transition-property | transition-duration | transition-timing-func ...

  6. CSS3 transform 属性

    CSS3 transform 属性 语法: transform: none|transform-functions; 值 描述 none 定义不进行转换. matrix(n,n,n,n,n,n) 定义 ...

  7. 基于css3 transform实现散乱的照片排列

    分享一款基于css3 transform实现散乱的照片排列.这是一款简单零散的css3相册排列特效下载.效果图如下: 在线预览   源码下载 实现的代码. html代码: <div class= ...

  8. 理解CSS3 transform中的Matrix(矩阵)——张鑫旭

    by zhangxinxu from http://www.zhangxinxu.com本文地址:http://www.zhangxinxu.com/wordpress/?p=2427 一.哥,我被你 ...

  9. CSS3 Transform变形理解与应用

    CSS3 Transform变形理解与应用 Transform:对元素进行变形:Transition:对元素某个属性或多个属性的变化,进行控制(时间等),类似flash的补间动画.但只有两个关键贞.开 ...

  10. css3 transform:scale(x)实现字体的缩放:

    css3 transform:scale(x)字体的缩放: transform:scale(x),针对于整体的缩放,缩放的整体包括宽,高,背景.这自然对于内联元素就无法使用此属性,最好使用无属性的sp ...

随机推荐

  1. docker 修改容器内容后更新镜像的流程

    在 Docker 中,如果你修改了一个容器的内容并希望将这些更改保存为一个新的镜像,可以按照以下步骤进行: docker version: 26.1 1. 确保容器运行 首先,确保你正在修改的容器是运 ...

  2. CSS & JS Effect – Blue Tick Avatar

    效果 难点 难题只有一个, 那就是如何把 blue tick image 定位当 avatar 的右下角. HTML <div class="avatar-wrapper"& ...

  3. SpringMVC——SSM整合——表现层数据封装

    表现层数据封装 设置统一数据返回结果类 注意:Result类中的字段并不是固定的,可以根据需要自行增减提供若干个构造方法,方便操作 返回结果类 package com.cqupt.controller ...

  4. SuperMap iManager云套件数据动态更新刷新地图与数据服务

    一.使用背景 有这么一个需求,后端也就通过SuperMap iDesktop或数据库更新了新增或更新某个数据地理信息后,云套件SuperMap iManager中的服务没有更新,无法实时查看到更新的数 ...

  5. 课时04:了解HTTP网络协议

    什么是HTTP协议 HTTP(HyperText Transfer Protocol)叫超文本传输协议,它是web服务器和客户端直接进行数据传输的规则,是一个无状态的应用层协议. HTTP协议工作原理 ...

  6. 使用dynamic debug帮助调试

    你一定在kernel source code中看过很多pr_debug()/dev_dbg()/print_hex_dump_debug()吧,这些debug语句提供更多的信息帮助我们了解内核运行流程 ...

  7. 2021年7月国产数据库排行榜:openGauss成绩依旧亮眼,Kingbase向Top 10发起冲刺

    7月份的国产数据库流行度排行榜已经揭晓.本期榜单展示的136个数据库中,近三分之二实现了评分增长.笔者认为这与6月份中国信通院发布第十二批大数据产品能力评测结果有关,65家企业的120款产品通过了本次 ...

  8. 墨天轮国产数据库沙龙 | 张晓庆:GoldenDB分布式数据库的自动安装与备份恢复

    在共同推进国产化生态发展的进程下,墨天轮正式推出"墨天轮国产数据库沙龙"系列直播活动,将定期邀请各国产数据库产品专家.掌门人,共同探讨如何达成技术"自主可控"的 ...

  9. nextjs 的函数,参数,属性装饰器的使用

    // 属性装饰器 const doc1:PropertyDecorator = (target:any,val: string | symbol) => { console.log(target ...

  10. 从浏览器输入url到回车发生了什么

    1. 域名解析,即把域名解析成以为唯一的ip ps:ip是每个网站的对应的一个key,域名是为了语义化,方便使用而设计的 : ps:第一次域名解析需要花费较长的时间,所以一般第一次解析就会把DNS解析 ...