开启掘金成长之旅!这是我参与「掘金日新计划 · 12 月更文挑战」的第2天,点击查看活动详情
本文主要带大家深入了解transform。主要从2d和3d两个方面来了解。
2d转换 transform
可以改变 元素 在 平面上的 位置 和 形状
- 平移
- 旋转
- 缩放
平移 translate
div{
transform:translate(0px,100px);
}
特点
-
百分比单位 是相对 自身的宽度和高度 (区别于以前的定位和margin)
- 子元素的在父元素 水平垂直居中
-
平移 不像margin会挤压元素,类似定位 覆盖元素(不会脱标)
-
实现页面效果
- 大的布局效果 优先用定位
- 微调 用margin还是 平移
旋转 rotate
可以让元素实现一个旋转的效果
- 单位 角度
deg - 旋转的正方向 顺时针
- 默认的旋转中心点 元素的中心
transform-origin:0 0;
缩放 scale
放大元素 或者 缩小 元素
div{
transform:scale(2,3);
}
3d转换 transform
可以改变元素 在立体空间内 位置 和 形状
- 3d 平移
- 3d 旋转
- 3d 缩放
3维坐标系
- x轴 从左到右
- y轴 从上到下
- z轴 屏幕里面 指向屏幕的外面
3d平移
3d旋转
- 看着需求 可以知道代码是怎写
- 看着代码 可以想象到 效果怎么样
左手准则
通过左手准则 来 实现以上的两个需求
让立方体 沿着 x轴旋转
- 伸出左手 手拇指 指向 旋转轴的正方向
- 左手剩下的4个手指 弯曲的方向 就是 立方体旋转的方向
平移+旋转+缩放
transform: translateX(400px) rotate(45deg) scale(2,2);
3d-缩放
-
2d缩放 缩放的div 宽度 和 高度
-
3d缩放 缩放
- 普通的div 没有厚度
- 立方体就有厚度