• CSS3(3)---2D变形(transform)


    CSS3(3)---2D变形(transform)

    2D变形是CSS3中具有颠覆性的特征之一,它常用的属性有:移动(translate)、缩放(scale)、旋转(rotate)、倾斜 (skew)。

    一、2D变形语法

    1、移动 (translate)

    移动的属性: translate

     translate(x,y)水平方向和垂直方向同时移动(也就是X轴和Y轴同时移动)
     translateX(x)仅水平方向移动(X轴移动)
     translateY(Y)仅垂直方向移动(Y轴移动)
    

    比如设置为:

    transform: translate(50px,60px);  /* 水平向右移动50px 和 垂直向下移动60px*/
    

    运行结果

    说明 从上面运行结果可以看出两点

    1、移动的原点默认是 最左角上 的位置。

    2、px取正数代表 向右 或者 向下。Px为负值,那就变成向左 或者 向上。

    2、缩放 (scale)

    缩放的属性: scale

    scale(X,Y)使元素水平方向和垂直方向同时缩放(也就是X轴和Y轴同时缩放)
    scaleX(x)元素仅水平方向缩放(X轴缩放)
    scaleY(y)元素仅垂直方向缩放(Y轴缩放)
    

    说明 scale默认值为1,设置0.5代表缩小一倍,2代表放大一倍。

    比如设置为:

    transform: scale(0.5,1);  /* 水平缩小0.5倍 和 垂直不变 */
    

    运行结果

    3、旋转 (rotate)

    旋转属性 : rotate (正值为顺时针,负值为逆时针)

    比如设置为:

    transform: rotate(45deg);   /* 注意单位是 deg 度数 */
    

    运行结果

    我们可以看到这里旋转默认是以对角线的位置进行旋转,这里也可以设置以其它位置进行旋转。

    调整元素转换变形的原点属性:transform-origin

     div {transform-origin: left top;transform: rotate(45deg); }   /*  改变元素原点到左上角,然后进行顺时旋转45度 */
     /*如果是4个角,可以用 left top这些,如果想要精确的位置, 可以用  px 像素*/
     div {transform-origin: 10px 10px;transform: rotate(45deg); }   /*  改变元素原点到x 为10  y 为10,然后进行顺时旋转45度 */
    

    4、倾斜 (skew)

    旋转属性 : rotate (正值为顺时针,负值为逆时针)

    比如设置为:

    transform: skew(30deg,0deg);   /* 水平方向上倾斜30度,垂直方向保持不变 */
    

    运行结果


    二、示例

    1、移动

    效果

    代码

    <!DOCTYPE html>
    <html lang="en">
    <head>
    	<meta charset="UTF-8">
    	<title>过渡</title>
    	<style>
    	div {
    		 100px;
    		height: 100px;
    		background-color: pink;
    		transition: all 1.2s; /*过渡时间1.2秒*/
    	}
    	div:hover {
    		transform: translate(100px, 50px); /*水平移动100px 垂直移动50px*/
    	}
    	</style>
    </head>
    <body>
    	<div></div>
    </body>
    </html>
    

    2、缩放

    效果

    代码

    <!DOCTYPE html>
    <html lang="en">
    <head>
    	<meta charset="UTF-8">
    	<title>缩放</title>
    	<style>
    	div {
    		 200px;
    		height: 200px;
    		background-color: pink;
    		transition: all 1.2s; /*过渡时间1.2秒*/
    	}
    	div:hover {
    		 /*transform: scale(0.8, 1); 0 0%   1  100%   宽度变为了原来的 80%  高度不变*/
    		/*transform: scale(1, 0.8);  0 0%   1  100%   宽度变为了原来的 80%  高度不变*/
    		transform: scale(0.5); /* 高度 和 宽度一起缩放 都是 0.5 */
    	}
    	</style>
    </head>
    <body>
    	<div>	
    	</div>
    </body>
    </html>
    

    3、缩放(新浪图片放大)

    效果

    代码

    <!DOCTYPE html>
    <html lang="en">
    <head>
    	<meta charset="UTF-8">
    	<title>缩放</title>
    	<style>
    	div {
    		 386px;
    		height: 260px;
    		overflow: hidden;  /*多余部分隐藏*/
    	}
    	div img {
    		transition: all 0.5s; /*设置过渡时间*/
    	}
    	div:hover img {
    		transform: scale(1.1); /*设置放大1.1倍*/
    	}
    	</style>
    </head>
    <body>
    	<div>
    		<img src="1.jpg" height="260" width="386" alt="">
    	</div>
    </body>
    </html>
    

    4、旋转 (默认原点旋转)

    效果

    代码

    <!DOCTYPE html>
    <html lang="en">
    <head>
    	<meta charset="UTF-8">
    	<title>旋转</title>
    	<style>
    	div {
    		 150px;
    		height: 150px;
    		background-color: pink;
    		margin: 100px auto;
    		transition: all 0.8s;
    	}
    	div:hover {
    		transform: rotate(45deg); /* 顺时针旋转45度*/
    	}
    	</style>
    </head>
    <body>
    	<div></div>
    </body>
    </html>
    

    5、旋转 (指定原点旋转)

    效果

    代码

    <!DOCTYPE html>
    <html lang="en">
    <head>
    	<meta charset="UTF-8">
    	<title>旋转</title>
    	<style>
    	div {
    		 150px;
    		height: 150px;
    		background-color: pink;
    		margin: 100px auto;
    		transition: all 1.0s;
    		transform-origin: right bottom;  /*设置 旋转中心点为 右下角*/
    	}
    	div:hover {
    		transform: rotate(90deg);   /*旋转90度*/
    	}
    	</style>
    </head>
    <body>
    	<div></div>
    </body>
    </html>
    

    6、倾斜

    效果

    代码

    <!DOCTYPE html>
    <html lang="en">
    <head>
    	<meta charset="UTF-8">
    	<title>倾斜</title>
    	<style>
    		div {
    			 150px;
    			height: 150px;
    			margin: 100px auto;
    			background-color: pink;
    	        transition: all 1.0s
    		}
    		div:hover {
    		    transform: skew(30deg);   /*倾斜度*/
    	}
    	</style>
    </head>
    <body>
    	<div></div>
    </body>
    </html>
    


    ``` 你如果愿意有所作为,就必须有始有终。(17) ```
  • 相关阅读:
    解决ASP.NET MVC AllowAnonymous属性无效导致无法匿名访问控制器的问题
    ASP.NET MVC 4 RC的JS/CSS打包压缩功能 (转载)
    oracle报错ORA-01507
    oracle 大表删除数据后,回收空间的问题。
    解决MySQL服务启动时报1067错误
    尚未在 Web 服务器上注册 ASP.NET 4.0” 的解决办法
    thymeleaf中相对路径的两种方式
    史上最详 Thymeleaf 使用教程
    isNotBlank()和isNotEmpty()总结
    IDEA去除掉虚线,波浪线,和下划线实线的方法
  • 原文地址:https://www.cnblogs.com/qdhxhz/p/11918994.html
Copyright © 2020-2023  润新知