Fork me on GitHub

你明白transform中的skew属性是何如变换的吗?

1.随着目前ui组件库越来越多,我们大部分的前端小伙伴只需要注重功能的实现,样式部分反而是这部分小伙伴最薄弱的地方,当然,我目前也是这部分人,每天写的最多的东西就是毫无营养的业务代码,最近也是在缕css3中的内容,对于一些图形变化的属性还是蛮感兴趣的,例如常用三大css属性,transition, transform,animate等图形变换的属性使用。大部分可能会用大并不了解他是如何变换,本篇选了transform中的skew属性来讲解他是如何变换的。

   一。首先了解图形变化前的起始位置,搞清楚这个最重要,因为css中定义dom模型位置是从,左上角开始,水平方向为(y) 轴,垂直方向为 (x) 轴。 (ps:最开始也不知道x,y轴和我们平时见到的是相反的,所以怎么画都画不准ππ)

    

 

    二.搞清楚模型坐标轴,和模型起始位置后,又出现了一个和我们传统认知中的x,y轴顺逆旋转不一样的地方,假如我们设置transform:skew(30deg,30deg),第一个感觉是不是x轴顺时针旋转30°、y轴顺时针旋转30°,那你就错了,如何都是顺时针他应该是一张这样的  图:

        

 

 

 

  这里我们写一个例子来测试:

  

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
	</head>
	<style>
		#div1{
			width: 100px;
			height: 100px;
			border: 10px solid #00a8f3;
			transform: skew(30deg,30deg);
		}
	</style>
	<body>
		<div id='div1'></div>
	</body>
</html>

 浏览器打开:

  

 

 

    ?是不是和我们想象的不一样。

       我们只设置y轴看一下效果。

  

#div1{
  width: 100px;
  height: 100px;
  border: 10px solid #00a8f3;
  transform: skew(0deg,30deg);
}

 

 

 

 由图可知y轴旋转数值是正数时旋转方向的确为顺时针方向

    

 

我们再只设置x轴看一下效果

#div1{
	width: 100px;
	height: 100px;
	border: 10px solid #00a8f3;
        transform: skew(30deg,0deg);
}    

 

 

 

 把他移到xy轴上分析

      

 

 

 这个设定我觉得还是蛮迷的,x轴的正数角度他是逆时针的,反之亦然。

所以第一个例子设置transform: skew(30deg,30deg)他的变换过程其实是y轴顺时针30°x轴逆时针30°。

总结:

  1.transform skew属性的坐标是以y轴为横轴x轴为纵轴来参照变换的。

       2.y轴的正角度数为顺时针旋转,x轴的正角度为逆时针旋转,反之亦然。

 

 

   

 

 

    

 

posted @ 2021-02-22 13:38  陶非凡  阅读(1217)  评论(3编辑  收藏  举报