transform实现元素的移动、缩放、旋转、变形


既然用到了transform就先说说这个属性吧!




一、transform属性简介


Transform属性应用于元素的2D或3D转换。这个属性允许你将元素旋转,缩放,移动,倾斜等。现在暂时先说说属性和2D的转换吧!3D学习的成本,需要设备的性能和浏览器支持来支撑!所以先介绍3D的效果。


用法:transform:translate(-50%,-50%)





描述

translate(x,y)

定义 2D 移动。x为左右移动,y为上下移动!可以为负值,单位px,百分比,em等

scale(x,y)

定义 2D 缩放。x为宽度的缩放,y为高度的缩放!值为数值,0-n倍,小于1是缩小

rotate(angle)

定义 2D 旋转,在参数中规定角度。0-360度,单位deg

skew(x-angle,y-angle)

定义沿着 X 和 Y 轴的 2D 倾斜转换。简单点相当于PhotoShop里面的斜放属性,基本很少用到



二丶介绍下他们的使用情况吧


首先,先写个字体出来吧!就一我上一篇介绍的火焰字好了!上篇的代码对这篇的代码不会有干扰的




<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>小效果</title>

	<style type="text/css">
		/*通配符重置浏览器默认的两个值,
		对本文没有太大影响,不知道可以无视*/
		*{
			margin: 0;
			padding: 0;
		}
		.div1{
			width: 300px;
			height: 100px;
			padding-top: 20px;
			line-height: 100px;
			margin:200px auto 0;
			text-align: center;
			font-size: 40px;
			font-weight: bold;
			font-family: "华文行楷";
			background: #000;
			color:#F60;
			text-shadow: 0px 0px 2px #fff,
					0px -3px 3px #1EB,
					0px -6px 4px #01DEFD,
					0px -9px 5px #0BF,
					0px -12px 6px #08F;
		}
	</style>
</head>
<body>
	<div class="div1">超炫火焰字</div>
</body>
</html>





效果如图:




旋转等变FCNN 旋转等变transformer_旋转等变FCNN



1.translate值的作用


我们在text-shadow后面添加一个transform属性先是移动吧!


transform:translate(20%,0);




我们就会发现这个div被右移动了20%


这个20%是对于这个div来说的;也就是说移动的这个div的百分之20%,60px的距离


在这里我提一句就是绝对定位的问题,当元素添加如下属性时


position: absolute;top: 50%;transform: translate(0,-50%);




那么这个元素就会相对于祖先有设有position属性的垂直居中定位了,如果先辈没有设有position属性就会相对屏幕垂直居中了


对于translate这个值的负值玩法,上下移动就由你们去尝试咯


2.scale值的作用


我们在将translate改为scale吧!代码如下


transform:scale(1.2,0);




我们就会发现这个div被拉伸了1.2


这个1.2是对于这个div来说的;也就是说的这个div的宽度被拉长了,宽度变为了原来的1.2倍


这个scale常常被用到购物商城的鼠标移进时图片被放大的效果里,并且不会对原来的布局产生任何变化和影响


对于scale这个值的负值玩法,拉伸成啥样子就由你们去尝试咯


3.rotate值的作用


我们在将scale改为rotate吧!代码如下


transform:rotate(45deg);




我们就会发现这个div被旋转了45度


旋转的原点为div盒子的中心点,设置了45deg就旋转了45deg


对于rotate这个值的负值玩法,其实360deg就旋转了一圈,相当于回到了原位即相当于0deg了,负值就是向左方向旋转了


4.skew值的作用


这个值的是扭曲,斜视某个对象而已,很少用到,就不做介绍了