5.1 transform转换
5.1.1 translate(x,y) 位移
可以改变元素在页面中的位置,类似定位。
经常和transition过渡配合做出相对应的效果。
补充:
现在可以将盒子移动的方式有哪些?
-
定位 (相对定位不会影响其他盒子的位置)
-
外边距(margin)
-
2D转换
- 区别:和以上两种方式不同的是,2D转换不会影响其他盒子的位置(可以和position组合进行盒子垂直居中定位,下面有案例)
- 语法
transform: translate(x , y);
transform: translate(100px,30px);
-
要点
-
x 代表横向移动的距离,y代表纵向移动的距离
-
优点:不会影响其他盒子的位置。
-
使用百分比% 是 根据自身宽高进行移动,则移动自身宽高的一半。
transform:translate(50%,50%);
- 对行内标签没有作用
-
案例(盒子垂直居中):
<style>
* {
margin: 0;
padding: 0;
}
.box3 {
position: relative;
width: 300px;
height: 300px;
background-color: rgb(238, 206, 169);
}
.center {
position: absolute;
width: 50px;
height: 50px;
top: 50%;
left: 50%;
/*
还有一种方式进行外边距使内部盒子移到中央
margin-top: -25px;
margin-left: -25px;
*/
/*
translate和margin不同的是,translate不管怎么改变盒子的大小,
都会水平垂直居中。
*/
transform: translate(-50%, -50%);
background-color: rgb(142, 207, 67);
}
</style>
<body>
<div class="box3">
<div class="center"></div>
</div>
</body>
5.1.2 rotate()旋转
将元素在2维平面内进行顺时针或者逆时针进行旋转
语法:
transform: rotate(30deg);
要点:
- 单位为 deg ,意为度数。
- 角度为正时,顺时针;负时,逆时针。
- 默认旋转中心为 旋转元素的中心。
5.1.3 translate-origin转换中心点
设置旋转元素的中心点
语法:
translate-origin:x y;
要点:
- 默认的是50% 50%,即元素的中央
- 中间没有逗号,用空格隔开
- 可以设置像素 或者 方位名词 (left center bottom …)
5.1.4 scale(x,y) 缩放
控制元素的放大和缩小
语法:
transform: scale(x , y);
要点:
- 里面的数字不跟单位,即倍数的意思,1倍就是其本身的大小,2倍就是其宽高的2倍
- 优点:缩放盒子不会影响其他盒子的大小,而且可以进行缩放的中心点
transform: scale(2)
:相当于transform: scale(2,2)
5.1.5 综合写法
transform: translate(x,y) rotate() scale(x,y);
注意
-
转换时有顺序之分。
-
有位移和其他属性的时候,一定要先将位移放在最前面,在x,y轴上先移动在旋转。