针对transform中的几种值的先后顺序
来源:互联网 发布:国家顶级域名 编辑:程序博客网 时间:2024/06/04 17:48
针对transform中的几种值的先后顺序
一般的,对于css一些变量的属性值是没有顺序的,但是如今碰到了transform,对他设置一些值的时候就需要注意一下了,这顺序可不是随便定义的,如果控制不好,结果预期很可能让你大吃一惊,以下是我在学习的时候遇到的一些典型例子,在此分享给大家:
- 1、 translate和scale:
HTML代码:
<div class="wrapper"> <div></div> <div class="div1"></div> <div class="div2"></div> <div class="div3"></div> </div>
CSS代码:
div{ width:100px; height: 100px; background: tomato; } .wrapper{ width:500px; height: 400px; border:1px solid #000; margin:20px auto 0; background: none; } .div1{ transform: translateX(400px); } .div2{ transform: translateX(400px) scale(.5); } .div3{ transform: scale(.5) translateX(400px) ; }
代码执行结果:
如图,默认的位移和形变的基点是中心,所以我们按照盒子的中心来做位移的衡量基点。第一个盒子为初始位置,第二个第三个都到了我们想要的位置(位移为400px),但是第四个盒子就出现了问题,位移为200px。 按照常理,不管scale和translate的顺序如何,都应该达到我们期望的位置,但是如今我们发现如果先位移,后缩放,则可以达到我们期望的位置,但是当顺序反过来,即先缩放,后位移的话,则会将位移的步长同时缩小相应的倍数(这里我们缩放到1/2,所以相应的位移从原来的400px缩放到200px)。
- 2、 translate和rotate:
HTML代码:
<div class="wrapper"> <div></div> <div class="div1"></div> <div class="div2"></div> <div class="div3"></div> </div>
CSS代码:
div{ width:100px; height: 100px; background: tomato; transition: 1s all ease; } .wrapper{ width:500px; height: 600px; border:1px solid #000; margin:20px auto 0; background: none; } .div1{ transform: translateX200px); } .div2{ transform: translateX(200px) rotate(45deg); } .div3{ transform: rotate(45deg) translateX(200px) ; }
代码执行结果:
如图,第二个第三个盒子同样达到了我们的预期,都向右移动了200px;但是第四个盒子又出现了问题,我们给的水平位移,但是在竖直方向也有了位移,不仅如此,向右移动的距离也没有200px,WFT? 其实,当我们先旋转的时候,对于盒子的坐标系也旋转了,如图
所以,当我们在旋转后再进行位移的时候,其实是按照旋转后的坐标系位移,在我们视觉中就产生了向右位移了一部分,向下移动了一部分。 总而言之,在transform中,当我们同时有位移和其他属性的时候,记得要将位移放到最前,先位移到我们期望的位置,然后再进行其他的形变。
阅读全文
2 0
- 针对transform中的几种值的先后顺序
- 成员初始化的先后顺序
- 内存释放的先后顺序
- java初始化的先后顺序
- 焦点处理的先后顺序
- 程序执行的先后顺序
- 构造方法的先后顺序
- Java中的继承与静态static等的执行先后顺序的面试题
- Java中的继承与静态static等的执行先后顺序的面试题
- Java中的继承与静态static等的执行先后顺序的面试题
- Java中的继承与静态static等的执行先后顺序的面试题
- Java中的继承与静态static等的执行先后顺序的面试题
- Java中的继承与静态static等的执行先后顺序的面试题
- Spring容器中的Bean几种初始化方法和销毁方法的先后顺序
- Spring容器中的Bean几种初始化方法和销毁方法的先后顺序
- Spring容器中的Bean几种初始化方法和销毁方法的先后顺序
- Spring容器中的Bean几种初始化方法和销毁方法的先后顺序
- Spring容器中的Bean几种初始化方法和销毁方法的先后顺序
- 第二周 程序的多文件组织
- 算法和数据结构可视化教程
- jquery库实现iframe自适应内容高度和宽度
- FLEX布局
- Android显示提示信息,实现两个界面之间的跳转
- 针对transform中的几种值的先后顺序
- IPC
- 一些用法一一利用Mask记录一些开关选项
- JAVA Spring web mvc 学习 之 3:DispatcherServlet
- 线性表——创建、插入、删除、查找
- easyUI DataGrid View(数据表格展示) 表格添加按钮
- 2017.9.13 序列维护 思考记录
- 第二周项目——多文件
- 欢迎使用CSDN-markdown编辑器