CSS复习-Transform属性

2022/7/31 CSS

# 一、概念

Transform字面意思就是变形,改变的意思,该元素应用于2D和3D转换

该属性允许对元素进行旋转、缩放、移动和倾斜

在css3中transform主要包括以下几种:

旋转rotate扭曲skew缩放scale移动translate以及矩阵变形matrix

# 二、语法

transform: rotate | scale | skew | translate | matrix;

transform属性实现了一些可用SVG实现的同样功能,它可用于内联(inline)函数和块级(block)元素,它允许我们旋转,缩放和移动元素

他有几个属性值参数:rotate;translate;scale;skew;matrix

# 三、变形

# 3.1 rotate旋转

通过指定的角度参数对原元素指定一个2D 旋转和3D旋转,需先有transform-origin属性的定义

transform-origin:旋转的基点,其中angle是指旋转角度,如果设置的值为正数表示顺时针旋转,如果设置的值为负数,则表示逆时针旋转

/* rotate():2D旋转 */
transform: rotate(45deg);

/* rotateX():沿着X轴3D旋转 */
transform: rotateX(45deg);

/* rotateY():沿着Y轴3D旋转 */
transform: rotateY(45deg);

/* rotateZ():沿着Z轴3D旋转 */
transform: rotateZ(45deg);

/* rotate3d(x,y,z,angle):3D旋转,接受四个参数,x,y,z介于0-1之间,angle是旋转的度数 */
/* 元素围绕着xyz在空间中确定的唯一坐标点和原点之间的连线旋转指定的角度,这就是rotate3D */
transform: rotate3D(1,1,1,45deg);

# 3.2 translate移动

translate表示移动状态

分为三种情况:

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

# 3.3 scale缩放

缩放scale和移动translate是极其相似,具有三种情况:

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

它们具有相同的缩放中心点和基数,其中心点就是元素的中心位置,缩放基数为1,如果其值大于1元素就放大,反之其值小于1,元素缩小

.conn1 {
  background-color: red;
  height: 100px;
  width: 20%;
  transform: scale(1, 2);
  margin-top: 20px
}

test image-20220726211030197

# 3.4 skew扭曲

扭曲skew同样具有三种情况:

  • skew(x,y)使元素在水平和垂直方向同时扭曲(X轴和Y轴同时按一定的角度值进行扭曲变形)
  • skewX(x)仅使元素在水平方向扭曲变形(X轴扭曲变形)
  • skewY(y)仅使元素在垂直方向扭曲变形(Y轴扭曲变形)
/* skewX(angle) - 沿 X 轴的 2D 倾斜 */
transform: skewX(45deg);  

/* skewY(angle) - 沿 Y 轴的 2D 倾斜 */
ransform: skewY(45deg); 

/* skew(angle-x, angle-y) - 沿 X Y 轴的 2D 倾斜 */
transform: skewY(45deg, 45deg);