首页 > 其他分享 >transform属性(元素转换、变形等)

transform属性(元素转换、变形等)

时间:2022-10-06 23:34:24浏览次数:57  
标签:angle 定义 变形 元素 transform 2D 3D 属性

transform属性

描述
none 定义不进行转换
matrix(n,n,n,n,n,n) 定义 2D 转换,使用六个值的矩阵
matrix3d(n,n,n,n,n,n,n,n,n,n,n,n,n,n,n,n) 定义 3D 转换,使用 16 个值的 4x4 矩阵
translate(x,y) 定义 2D 转换
translate3d(x,y,z) 定义 3D 转换
translateX(x) 定义转换,只是用 X 轴的值
translateY(y) 定义转换,只是用 Y 轴的值
translateZ(z) 定义 3D 转换,只是用 Z 轴的值
scale(x,y) 定义 2D 缩放转换
scale3d(x,y,z) 定义 3D 缩放转换
scaleX(x) 通过设置 X 轴的值来定义缩放转换
scaleY(y) 通过设置 Y 轴的值来定义缩放转换
scaleZ(z) 通过设置 Z 轴的值来定义 3D 缩放转换
rotate(angle) 定义 2D 旋转,在参数中规定角度
rotate3d(x,y,z,angle) 定义 3D 旋转
rotateX(angle) 定义沿着 X 轴的 3D 旋转
rotateY(angle) 定义沿着 Y 轴的 3D 旋转
rotateZ(angle) 定义沿着 Z 轴的 3D 旋转
skew(x-angle,y-angle) 定义沿着 X 和 Y 轴的 2D 倾斜转换
skewX(angle) 定义沿着 X 轴的 2D 倾斜转换
skewY(angle) 定义沿着 Y 轴的 2D 倾斜转换
perspective(n) 为 3D 转换元素定义透视视图

下面我只写出transform属性中常用的属性和关键字

2D转换

描述
matrix(n,n,n,n,n,n) 定义 2D 转换,使用六个值的矩阵。
translate(x,y) 定义 2D 转换,沿着 X 和 Y 轴移动元素。
translateX(n) 定义 2D 转换,沿着 X 轴移动元素。
translateY(n) 定义 2D 转换,沿着 Y 轴移动元素。
scale(x,y) 定义 2D 缩放转换,改变元素的宽度和高度。
scaleX(n) 定义 2D 缩放转换,改变元素的宽度。
scaleY(n) 定义 2D 缩放转换,改变元素的高度。
rotate(angle) 定义 2D 旋转,在参数中规定角度。
skew(x-angle,y-angle) 定义 2D 倾斜转换,沿着 X 和 Y 轴。
skewX(angle) 定义 2D 倾斜转换,沿着 X 轴。
skewY(angle) 定义 2D 倾斜转换,沿着 Y 轴。

translate(位移)

  1. translate(x,y)
    沿着x轴和y轴移动,前面的值是x轴的移动,后面的值是y轴的移动,不写值的时候默认移动x轴
div {
  transform: translate(50px, 100px);
}
  1. translateX(n)
    沿着x轴移动
    transformX: translate(50px);
  2. translateY(n)
    沿着y轴移动
    transformY: translate(100px);

rotate(angle)(旋转)

div{
  /*顺时针旋转30度*/
  transform:rotate(30deg);
  /*逆时针旋转30度*/
  transform:rotate(-30deg);
}

scale(缩放)

  1. scale(x,y)
元素增大为其原始宽度的两倍和其原始高度的三倍:
div {
  transform: scale(2, 3);
}
元素减小为其原始宽度和高度的一半
div {
  transform: scale(0.5, 0.5);
}
  1. scaleX(n)
    改变元素的宽度
    如:transform:scaleX(2):
  2. scaleY(n)
    改变元素的高度
    如:transform:scaleY(2):

skew(扭曲)

  1. skew(x-angle,y-angle) 定义 2D 倾斜转换,沿着 X 和 Y 轴
    div元素沿 X 轴倾斜 20 度,同时沿 Y 轴倾斜 10 度:
div {
  transform: skew(20deg, 10deg);
}
  1. skewX(angle) 定义 2D 倾斜转换,沿着 X 轴
    div元素沿X轴倾斜 20 度:
div {
  transform: skewX(20deg);
}
  1. skewY(angle) 定义2D倾斜装换,沿着y轴
    div元素沿y轴倾斜 20 度:
div{
  transform:skewY(20deg);
}

matrix(把所有 2D 变换方法组合为一个)

matrix() 方法可接受六个参数,其中包括数学函数,这些参数使您可以旋转、缩放、移动(平移)和倾斜元素。

参数如下:matrix(scaleX(),skewY(),skewX(),scaleY(),translateX(),translateY())

div {
  transform: matrix(1, -0.3, 0, 1, 0, 0);
}

3D转换

  • rotateX()
    元素绕x轴旋转
div{
  rotateX(90deg)
}
  • rotateY()
    元素绕y轴旋转
div{
  rotateY(90deg)
}
  • rotateZ()
    元素绕z轴旋转
div{
  rotateZ(90deg)
}

transform-origin 属性(设置旋转元素的基点位置)

必须配合transform属性使用

描述
x-axis 定义视图被置于 X 轴的何处。可能的值: left、center、right、length(例:20px)、%(例:50%)
y-axis 定义视图被置于 X 轴的何处。可能的值: left、center、right、length(例:20px)、%(例:50%)
z-axis 定义视图被置于 X 轴的何处。可能的值: length(例:20px)
div
{
  transform: rotate(45deg);
  /*只写一个或者两个都可以,位置不动的用写0*/
  transform-origin:20% 40% 20px;
}

transform-style 属性(表示所有子元素在3D空间中呈现)

必须配合transform属性使用

描述
flat 子元素将不保留其 3D 位置。
preserve-3d 子元素将保留其 3D 位置。

实例:

点击查看代码
<!DOCTYPE html>
<html>
<head>
<style>
#div1
{
position: relative;
height: 200px;
width: 200px;
margin: 100px;
padding:10px;
border: 1px solid black;
}

#div2
{
padding:50px;
position: absolute;
border: 1px solid black;
background-color: red;
transform: rotateY(60deg);
transform-style: preserve-3d;
-webkit-transform: rotateY(60deg); /* Safari and Chrome */
-webkit-transform-style: preserve-3d; /* Safari and Chrome */
}

#div3
{
padding:40px;
position: absolute;
border: 1px solid black;
background-color: yellow;
transform: rotateY(80deg);
-webkit-transform: rotateY(-60deg); /* Safari and Chrome */

}
</style>
</head>

<body>

<div id="div1">
  <div id="div2">HELLO
  	<div id="div3">YELLOW</div>
  </div>
</div>

</body>
</html>



代码效果图
image

perspective 属性(设置从何处查看一个元素的角度)

与 perspective-origin 属性一同使用该属性,这样您就能够改变 3D 元素的底部位置。

描述
number 元素距离视图的距离,以像素计。
none默认值。 与 0 相同。不设置透视。

实例:

<!DOCTYPE html>
<html>
<head>
<style>
#div1
{
position: relative;
height: 150px;
width: 150px;
margin: 50px;
padding:10px;
border: 1px solid black;
perspective:150;
-webkit-perspective:150; /* Safari and Chrome */
}

#div2
{
padding:50px;
position: absolute;
border: 1px solid black;
background-color: yellow;
transform: rotateX(45deg);
-webkit-transform: rotateX(45deg); /* Safari and Chrome */
}
</style>
</head>

<body>

<div id="div1">
  <div id="div2">HELLO</div>
</div>
 
</body>
</html>

代码效果图
image

perspective-origin 属性

  • 设置 3D 元素的基点位置

  • perspective-origin 属性定义 3D 元素所基于的 X 轴和 Y 轴。该属性允许您改变 3D 元素的底部位置。

  • 当为元素定义 perspective-origin 属性时,其子元素会获得透视效果,而不是元素本身。

  • 注释:该属性必须与 perspective 属性一同使用,而且只影响 3D 转换元素。

语法和值

perspective-origin: x-axis y-axis;

描述
x-axis 定义视图被置于 X 轴的何处。可能的值: left、center、right、length(例:20px)、%(例:50%)
y-axis 定义视图被置于 X 轴的何处。可能的值: left、center、right、length(例:20px)、%(例:50%)

backface-visibility 属性(隐藏被旋转后的元素的背面)

隐藏被旋转的 div 元素的背面:

div
{
  backface-visibility:hidden;
}
描述
visible 背面是可见的
hidden 背面是不可见的

标签:angle,定义,变形,元素,transform,2D,3D,属性
From: https://www.cnblogs.com/liuhousheng/p/16758724.html

相关文章