html--css之2D/3D形变 transform

css样式中的2D,3D形变transform也是平时工作中常用的属性,这里讲一些常见的技巧和注意事项。

1.translate

在2D形变中,位移translate有两个参数,就是沿着x,y轴位移的距离。在3D形变中,位移translate有三个参数,分别是沿着x,y,z坐标轴位移的距离。这个属性比较简单。

2.rotate

在2D形变中,rotate有一个参数,就是旋转的角度,注意这里的旋转是顺时针的。在3D形变中,rotate有三个参数,分别是沿着x,y,z坐标轴旋转的角度。需要注意的是这里的旋转点都是在元素的中心,可以通过transform-origin属性去调整旋转点。在做3D旋转时,特别需要注意的一点就是,坐标轴会跟着一起旋转。所以当需要同时旋转和位移时,要考虑好先旋转或者是先位移会产生的不容效果;
例如:如下两个初始位置相同的div就是因为旋转和位移顺序的不同,产生了不同的效果
<!doctype html>
<html>

	<head>
		<meta charset="utf-8" />
		<meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no" />
		<title></title>
		<style type="text/css">
			.eye {
				/*景深*/
				perspective: 1200px;
				/*调整*/
				perspective-origin: 300px 300px;
			}
			
			.box {
				transform-style: preserve-3d;
				height: 600px;
				position: relative;
			}
			.box>div{
				position: absolute;
				left: 200px;
				top: 200px;
				height: 200px;
				width: 200px;
				font-size: 40px;
				line-height: 200px;
				text-align: center;
				
			}
			/*先旋转再位移*/
			.transfrom1 {
				background-color: red;
				transform: rotatey(45deg) translatez(200px);
			}
			/*先位移在旋转*/
			.transform2 {
				background-color: blue;
				transform: translatez(200px) rotatey(45deg) ;
			}
		</style>

	</head>

	<body>
		<div class="eye">
			<div class="box">
				<!--先旋转再位移-->
				<div class="transfrom1">
					transform1
				</div>
				<!--先位移在旋转-->
				<div class="transform2">
					transform2
				</div>
			</div>
		</div>

	</body>

</html>




3.scale

在2D形变中,scale有两个参数,就是沿着x,y轴缩放的比例,这个值小于1代表缩小。在3D形变中,sacle有三个参数,分别是沿着x,y,z坐标轴缩放的比例

4.skew

这个属性是2d形变中的属性,所以只有两个参数,分别表示沿着x轴和y轴的2d倾斜角度;这个属性需要注意是,在倾斜的时候,元素里的文字也会跟着倾斜,如下图:
<!doctype html>
<html>

	<head>
		<meta charset="utf-8" />
		<meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no" />
		<title></title>
		<style type="text/css">
			.skew{
				position: absolute;
				left: 200px;
				top: 200px;
				height: 200px;
				width: 200px;
				font-size: 40px;
				line-height: 200px;
				text-align: center;
				background-color: blue;
				transform: skew(45deg) ;
		</style>

	</head>

	<body>
				<div class="skew">
					skew
				</div>

	</body>

</html>


 
总结:这里简单分享了一下css 2D,3D形变的一些注意事项,若有不足,欢迎指出。



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值