13_CSS - transform

133 阅读3分钟

transform

transform是css的一个属性,该属性允许我们对一个元素进行各种各样的形变操作,包括旋转,缩放,倾斜或平移等

transform是形变的意思,transformer就是变形金刚;

注意事项

并非所有的元素都可以使用transform属性,行内非替换元素和表格相关元素不可以使用transform属性

# transform的值是一个或多个的形变函数
transform: none | <transform-function>+

Snipaste_2022-10-23_14-10-10.png

常见的形变函数有:

函数名描述备注
translate(x, y)平移translateX和translateY函数的简写方式
scale(x, y)缩放scaleX和scaleY函数的简写方式
rotate(deg)旋转rotateZ函数的简写方式
skew(deg, deg)倾斜skewX和skewY函数的简写方式

transform的特点:

  1. 任何的形变函数默认的transform-origin都是center center
  2. 元素的形变并不会影响标准流中的布局
  3. 如果形变函数中的值可以设置为百分比,那么这些百分比一般相对的元素自身的宽度或高度

位移 - translate

translate函数用于在平面上对元素进行位移操作

参数个数

个数说明
一个值设置x轴上的位移
两个值设置x轴和y轴上的位移

值类型

类型说明
数字100px, 10rem等
百分比参照元素本身( refer to the size of bounding box )

元素的水平和垂直居中方案

缩放 - scale

scale函数可改变元素的大小

值个数

个数说明
一个值x轴和y轴缩放相同的值
两个值设置x轴和y轴上的缩放

值类型:

类型说明
数字大于0,小于1 --- 缩放 等于1 --- 不变 大于1 --- 放大
百分比相对于元素自身的宽度或高度

旋转 - rotate

rotate(<angle>) 可以将元素在平面上进行旋转

<angle>的值为正数的时候,元素会顺时针旋转

<angle>的值为负整数的时候,元素会逆时针旋转

值个数

  • rotate函数的值只能有一个,表示旋转的角度

值类型:

类似举例备注
度 degrees90deg最为常用
百分度 gradians100grad百分度又称为梯度,主要用于建筑和测量领域 百分度会将圆等分为400分,所以其中90度即为100grad
弧度 radians0.25turn
圈数 turns3.1416rad

Snipaste_2022-10-23_12-36-36.png

transform-origin

值的个数

个数说明
一个值设置x轴的原点, y轴上的默认值是center
两个值设置x轴和y轴的原点

值的类型 : 必须是<length>,<percentage>或是left, center, right, top, bottom等多个关键字中的一个

其中X轴上可以设置的关键字为top,center, bottom

其中Y轴上可以设置的关键字为left, center, right

transform-origin中,如果设置的值为<percentage>, 那么其相对的就是自身宽度或高度

skew

skew(x, y)函数定义了元素如何在平面上进行倾斜

对于x轴,正值表示的是向左倾斜,负值表示的是向右倾斜

对于y轴,正值表示的是向下倾斜,负值表示的是向上倾斜

在skew函数中,参数x和参数y的类型都是度数

值个数

个数说明
一个值表示x轴上的倾斜, y轴上的值默认为0
两个值表示x轴和y轴上的倾斜

值类型: skew函数参数的类型可以支持弧度,角度,梯度和圈数,其中最常用的为弧度

设置多个值

   /* transform: translateX(50px);
      transform: scale(1.2);
      transform: rotate(45deg); */

      /* 
        <transform-function>+
          +: 一个或者多个, 并且多个之间以空格分隔
          transform: scale() translate();

        <box-shadow>#
          #: 一个或者多个, 多个之间以, 分隔
          box-shadow: 1px 1px 1px 1px #f00, 
      */