CSS transform 2D位移与旋转

transform 属性向元素应用 2D 或 3D 转换。该属性允许我们对元素进行旋转、缩放、移动或倾斜

定义2D转换中的移动,沿着 X 和 Y 轴移动元素;transform 的位移不会影响其他元素的位置

// transform 中的 translate 百分比单位长宽 是对于自身元素单位长宽;
// transform 对行内标签没有效果

向上移
向下移
向左移
向右移
向右转
向左转

该CSS样式常搭配 :hover 与 transition 一起使用

transform: none|transform-functions; //不进行转换 或 设置转换的方式函数

transform 方法

描述
none 定义不进行转换。
matrix(n*6) 定义 2D 转换,使用六个值的矩阵。
matrix3d(n*16) 定义 3D 转换,使用 16 个值的 4×4 矩阵。
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 旋转,在参数中规定角度。(单位deg)
rotate3d(x,y,z,angle) 定义 3D 旋转。
rotateX(angle) 定义沿着 X 轴的 3D 旋转。(单位deg)
rotateY(angle) 定义沿着 Y 轴的 3D 旋转。
rotateZ(angle) 定义沿着 Z 轴的 3D 旋转。(单位deg)
skew(x-angle,y-angle) 定义沿着 X 和 Y 轴的 2D 倾斜转换。
skewX(angle) 定义沿着 X 轴的 2D 倾斜转换。
skewY(angle) 定义沿着 Y 轴的 2D 倾斜转换。
perspective(n) 为 3D 转换元素定义透视视图。

transform 使元素居中

 /*元素定位到父级一半后,减去自身的一半大小*/
 position: absolute;
 top: 50%;
 left: 50%;
 transform: translate(-50%,-50%);

transform:translate 使元素平移

/* X轴 正数为右移,负数为左移动*/
transform: translateX(-10px);

transform:rotate 使元素2D旋转

/* 旋转角度 单位deg 正数为顺时针 负数为逆时针*/
transform: rotate(45deg);

transform-origin 设置2D转换中心点

 /* 设置中心点后 单位(xp、方位、 %) 将围绕该点作为旋转中心 */
transform-origin: left bottom;

transform:scale(x,y) 2D转换放大与缩小

/* 该操作不会影响其他盒子位置 1>的值为缩小 <1的值为放大 1为不变化 */
/* sacle缩放的最大优势 可以设置转换中心点缩放 */
transform: scale(1.5); /* 该参数表示为长宽等比放大 1.5倍*/

transform:scale 搭配中心点 将呈现出 不同方位 拉伸 或 缩放 的动画的效果

/* origin决定了动画的朝向,向左拉伸2倍自身宽度 */
transform-origin: right;
transform: scale(2, 1);

transform 可执行多个动画转换 但需注意书写顺序

/* 该顺序决定了转换的效果 在位移的途中进行了旋转*/
/* 尽量将位移放在最前面 */
transform: translate(200px,0) rotate(1000deg);

附上案例:图片放大案例

发表回复