写这篇文章是因为在一个前端QQ群里,网友 “小豆豆” (应他要求要出现他的网名......) ,问skew的角度怎么算,因为他看了很多文章还是不能理解skew的原理。于是,我觉得有必要写个博文,帮助那些不懂的人,让他们看了此文就懂。

进入正题:

先说明下,电脑屏幕的XY轴跟我们平时所说的直角坐标系是不一样的。如下图:

图上的盒子就是代表我们的电脑屏幕,原点就是屏幕的左上角,竖直向下为X轴正方向,水平向右为Y轴正方向。

1、倾斜skew

先看图

每个图下方都有skew的参数。粗的红色的线分别是水平垂直方向上的投影,其长度与左边的未倾斜的边是相等的。而两个参数所代表的角度,就是图中黑色标记的角。从上面我们也可以看出来:skewx是代表与X轴倾斜的角度,方向是逆时针;skewY是代表与Y轴倾斜的角度,方向是顺时针。

但是要注意的是,例如当用skew(60,60)的时候,角度的算法不是上面那样的呢,因为当两个参数的角度都大于45的时候,其实我们看到的是图形的反面,也就是长和宽交换了位置。我们可以看图片上的MyDiv确实是倒的。

此时黄色的才才是投影的矩形,可以和左边的原图进行比较。而原来的粗的红色的线是错的,错的,错的!!!多说几遍先。而角度则是黑色的标出来的!

其他角度,大家也可以去推一推。

需要说明的是skew的默认原点 transform-origin 是这个物件的中心点。这也是我在第二行有一条橘黄色的细线,是为了寻找中心点,然后获取投影。

如果上面的你不能理解,就看我画的投影,首先知道角度是怎么标记的,然后记住这么一句话:不管它是一个方向倾斜,还是两个方向一起倾斜,最后的在X,Y轴上的投影长度是不变的,也就是参数都为 0 时候的长度。但是投影要注意旋转的角度。为了保持投影长度不变,所以就得拉长图形,也就是变形。所以如果你想通过动手实验的话,是得不出上面的结果,因为实际的不会变形。

如果你真的懂了,用手就可以画出最后的结果的。

2、旋转rotate

用法:

transform: rotate(45deg);

共一个参数“角度”,单位deg为度的意思,正数为顺时针旋转,负数为逆时针旋转,上述代码作用是顺时针旋转45度。

rotate()默认旋转中心为图片的中点

我以前用rotate写过一个时钟,获取电脑当前时间,然后显示,开始计时,具体如下图:

还有rotateX,rotateY是,这个动手操作下就能理解,记得旋转中心是图形的中心。

3、缩放 scale

用法:transform: scale(0.5)  或者  transform: scale(0.5, 2);

参数表示缩放倍数;

一个参数时:表示水平和垂直同时缩放该倍率

两个参数时:第一个参数指定水平方向的缩放倍率,第二个参数指定垂直方向的缩放倍率。

需要注意的是,scale不看XY轴,而是看水平竖直的。具体可看下面的示例:

以上三个分别是scale(1,1);scale(0.5,2);scale(1.1,1.1);

4、移动 translate

用法:transform: translate(45px)  或者 transform: translate(45px, 150px);

参数表示移动距离,单位px,

一个参数时:表示水平方向的移动距离;

两个参数时:第一个参数表示水平方向的移动距离,第二个参数表示垂直方向的移动距离。

这个比较简单就不多说了,跟relative的属性有点像。它也是不看XY轴的。

组合

上面我们介绍了使用transform对元素进行旋转、缩放、倾斜、移动的方法,这里讲介绍综合使用这几个方法来对一个元素进行多重变形。

用法:

transform: rotate(45deg) scale(0.5) skew(30deg, 30deg) translate(100px, 100px);

这四种变形方法顺序可以随意,但不同的顺序导致变形结果不同,原因是变形的顺序是从左到右依次进行,这个用法中的执行顺序为1.rotate  2.scalse  3.skew  4.translate

参考文章:

skew算法_CSS3 transform 属性详解(skew, rotate, translate, scale)相关推荐

  1. CSS3 transform 属性详解

    news多报点 2016-11-18 22:47 写这篇文章是因为在一个前端QQ群里,网友 "小豆豆" (应他要求要出现他的网名......) ,问skew的角度怎么算,因为他看了 ...

  2. html transform属性,css3 transform属性详解

    CSS3变形是一些效果的集合,比如平移translate() .旋转rotate().缩放scare()和倾斜skew()效果,每个效果都被称作为变形函数(Transform Function),它们 ...

  3. css transform属性详解

    transform的值: rotate() 旋转 transform:rotate(30deg): translate() 位移 transform:translate(100px,20px): sc ...

  4. CSS3transform属性详解

    Transform字面上就是变形,改变的意思.在CSS3中transform主要包括以下几种:旋转rotate.扭曲skew.缩放scale和移动translate以及矩阵变形matrix.下面我们一 ...

  5. EMD算法之Hilbert-Huang Transform原理详解和案例分析

    目录 Hilbert-Huang Transform 希尔伯特-黄变换 Section I 人物简介 Section II Hilbert-Huang的应用领域 Section III Hilbert ...

  6. 【input 标签的 type 属性详解】

    input 标签的 type 属性详解 1. input 输入标签的 type 属性 1.1 input 标签的 type类型 属性的常用属性值 ⑴ 单行文本框: type="text&qu ...

  7. 图解机器学习算法(6) | 决策树模型详解(机器学习通关指南·完结)

    作者:韩信子@ShowMeAI 教程地址:https://www.showmeai.tech/tutorials/34 本文地址:https://www.showmeai.tech/article-d ...

  8. 算法经典“钓鱼”问题详解 基于贪心算法 C语言描述

    算法经典"钓鱼"问题详解 基于贪心算法 初始条件 在一条水平路边,有 n 2 ≤ n ≤ 25个钓鱼池,从左到右编号为1.2.3.--.n.小明有H1 ≤ H ≤ 16个小时的空余 ...

  9. CSS3animation属性详解(三)

    CSS3animation属性详解(三) animation-direction animation-direction属性 检索或设置对象动画在循环中是否反向运动 语法 animation-dire ...

最新文章

  1. 核逼近(Kernel Approximation)
  2. POJ 3660 Cow Contest [Floyd]
  3. 关于source insight 3.5 无法同步文件的问题
  4. bzoj3589 动态树 求链并 容斥
  5. 【计算机组成原理】程序中断与DMA
  6. Tensorflow默认占满全部GPU的全部资源
  7. 2021-2025年中国一次性马桶马桶座套行业市场供需与战略研究报告
  8. Git基础教程(三)
  9. BZOJ1037 ZJOI2008生日聚会(动态规划)
  10. 最近这里了这几年做过的计算机专业毕业设计题目如下:
  11. 一文学会LCD12864显示中文、英文、反显
  12. \t\t[生活小妙招]脚气 脚臭 损人不利己之疾病
  13. Java知识复习清单
  14. git The requested URL returned error: 429 问题解决
  15. 数据管理DMS移动版之2018新年巨献
  16. Generalized Focal Loss
  17. 常用的web服务器软件整理(转载)
  18. Vue.js快速入门之五:Mockjs的使用和语法详解
  19. Thinkpad E431 蓝牙连接问题
  20. python编写贪吃蛇游戏

热门文章

  1. Force Chrome to sync bookmarks
  2. 2021研发大数据报告发布,腾讯研发人员增长四成
  3. 点在直线的投影坐标 n维向量投影坐标 几何投影坐标
  4. 英语句式参考纯享版 - 状语从句
  5. 2021-10-17 每天几个LCEDA小知识——滚轮缩放技巧
  6. 8583报文详细分析
  7. 电子商务盛行,怎么提高商店转换率?
  8. python写自动化运行脚本_bat文件一键运行python自动化脚本
  9. Auto Rename tag
  10. 阿里提出联合预估算法JUMP:点击率和停留时长预测效果最优