2D转换(transform)

  • 转换(transform)是css3中具有颠覆性的特征之一,可以实现元素的位移、旋转、缩放等效果

移动(translate)

  • 可以改变元素在页面中的位置,类似定位
  • 注意:位移写在公式最前面
  • 语法:transform:translate(x, y) x轴和y轴的位置,
    注意:这里的y轴和数学中的y轴是反的。
坐标轴.PNG
  • 如果只需要移动一条轴可以分开写
    transform:translateX(值)
    transform:translateY(值)
  • 重点:
  1. 定义2D转换中的移动,沿着X和Y轴移动元素
  2. translate最大的优点,不会影响其他元素的位置
  3. translate中的百分比单位是相对于自身元素的translate(50%,50%)
  4. 对行内标签没有效果

旋转(rotate)

  • 语法:transform:rotate(度数) 单位deg
  • 重点:
  1. 角度为正,顺时针。角度为负,逆时针
  2. X,Y默认旋转的中心点是元素的中心点(50% 50%),等价于center,center
  3. 还可以给x y设置 像素 或者方位名词(left,bottom,right,top, center)
    比如left,bottom就是左下角

如何设置元素旋转的中心点

  • 语法:transform-origin: x y;

缩放(scale)

  • 语法:transform:scale(x, y)
  • 注意逗号分隔
  1. transform:scale(1,1)宽高都放大一倍,相当于没有放大
  2. transform:scale(2,2)宽高都放大2倍
  3. transform:scale(2) 只写一个参数,第二个参数和第一个参数一样
  4. transform:scale(0.5,0.5)小于一就是缩小
  • 优势:可以设置中心点,而且不影响其他盒子

倾斜(skew)

  • skew() 函数定义了一个元素在二维平面上的倾斜转换
  • skew()方法跟translate()方法、scale()方法一样,也有3种情况:
  1. skewX(x):使元素在水平方向倾斜(X轴倾斜),方法会保持高度
  2. skewY(y):使元素在垂直方向倾斜(Y轴倾斜),方法会保持高度
  3. skew(x,y):使元素在水平方向和垂直方向同时倾斜
    X轴和Y轴同时倾方法会先按照skewX方法倾斜,然后按照skewY方法倾斜
  • 语法:transform:skew(x,y)单位deg

2D转换综合写法

  • 注意:
  1. 同时使用多个转换,其格式为: transform:translate() rotate() scale()...等
  2. 其顺序会影响转换的效果(先旋转会改变坐标)
  3. 当我们同时有位移和其他属性的时候,记得要将位移放在最前面

简单案例

<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
</head>

<body>
  <div></div>
  <p>鼠标移到div</p>
</body>
<style>
  div{
    width: 50px;
    height: 50px;
    background-color: aqua;
    transition: all .5s;
  }

  div:hover {
    transform:translate(200px,200px) rotate(45deg) scale(2.5)
  }
</style>

</html>
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 在介绍有关transform相关的知识之前,先来讲一下transform-origin的用法以及关于角度的几种取值...
    跪键盘的小泰迪阅读 5,120评论 0 2
  • 看了很多视频、文章,最后却通通忘记了,别人的知识依旧是别人的,自己却什么都没获得。此系列文章旨在加深自己的印象,因...
    DCbryant阅读 5,867评论 0 4
  • CSS里transform变形这个属性有点学习难度,尤其在CSS3里加上了3D效果之后,2维变3维学习成本更是成倍...
    BULL_DEBUG阅读 4,430评论 0 1
  • CSS3动画的属性主要分为三类:transform、transition以及animation。 Transfor...
    may_mico阅读 14,129评论 1 19
  • CSS里transform变形这个属性有点学习难度,尤其在CSS3里加上了3D效果之后,2维变3维学习成本更是成倍...
    张歆琳阅读 28,266评论 5 81

友情链接更多精彩内容