首页 前端知识 CSS进阶知识:2D转换(transform),移动:translate,旋转:rotate,缩放:scale以及综合写法

CSS进阶知识:2D转换(transform),移动:translate,旋转:rotate,缩放:scale以及综合写法

2024-03-10 11:03:28 前端知识 前端哥 285 809 我要收藏

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

2.2D转换的定义

2D转换是改变标签在二维平面上的位置和形状的一种技术。CSS的二维坐标系是下面这样,与数学上的不同

1.移动:translate

语法:

transform: translate(x,y);

分开写:

transform: translateX(n);
transform: translateY(n);

 

 注意:

        1.定义2D转换中的移动,沿着X和Y轴移动元素

        2.translate最大的优点:不会影响其他元素的位置(不同于margin和padding)

        3.对行内标签无效

        4.translate中的百分比单位是相对于自身元素的

translate的应用:盒子水平居中
<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Document</title>
    <style>
      * {
        margin: 0;
        padding: 0;
      }
      div {
        position: relative;
        width: 500px;
        height: 500px;
        background-color: red;
      }
      p {
        position: absolute;
        top: 50%;
        left: 50%;
        width: 200px;
        height: 200px;
        background-color: green;
        transform: translate(-50%, -50%);
      }
    </style>
  </head>
  <body>
    <div><p></p></div>
  </body>
</html>

 效果图:

2.旋转:rotate

语法:

transform: rotate(度数);

 

有趣的旋转案例(鼠标经过,图片旋转360度):
<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Document</title>
    <style>
      img {
        width: 300px;
        /* 旋转90度,注意一定要写度数 */
        border-radius: 50%;
        border: 5px solid blue;
        transition: all 0.3s;
      }
      img:hover {
        transform: rotate(360deg);
      }
    </style>
  </head>
  <body>
    <img src="./img/1.jpg" alt="" />
  </body>
</html>

 

注意:

1.rotate里面跟度数,单位是deg比如rotate(45deg) 

2.角度为正数,顺时针。角度为负数,逆时针。

3.默认旋转的中心点是元素的中心点

2D转化中心点的设置(transform-origin)

语法:

transform-origin: x y;

 注意:

1.后面的参数是用空格隔开的

2.x y默认转换的中心点是元素的中心点(50%,50%)

3.还可以给 x y 设置 像素 或者 方位名词(top bottom left right center)

案例:

1.方位名词

2.像素的方式:

 

3.缩放:scale

 给元素添加了这个属性就可以控制它的放大和缩小。

1.语法

transform: scale(x,y);

2.注意:
1.注意其中的x和y用逗号分隔
2.transform:scale(1,1):宽和高都放大一倍,相对于没有放大
3.transform:scale(2,2):宽和高都放大了2倍
4.transform:scale(2):只写一个参数,第二个参数则和第一个参数一样,相当于scale(2,2) transform:scale(0.5,0.5):缩小
5.sacle缩放最大的优势:可以设置转换中心点缩放,默认以中心点缩放的,而且不影响其他盒子

6.括号里面写的是数字不跟单位 

案例演示:

4.综合写法
 /* 要先写位移 */
  transform: translate(x,y) rotate(x,y) scale(2);

 注意
1.同时使用多个转换,其格式为:transform:translate() rotate() scale()等

2.其顺序会影转换的效果。(先旋转会改变坐标轴方向)

3.当我们同时有位移和其他属性的时候,记得要将位移放到最前

转载请注明出处或者链接地址:https://www.qianduange.cn//article/3515.html
标签
评论
发布的文章

Jquery——基础

2024-04-03 12:04:28

大家推荐的文章
会员中心 联系我 留言建议 回顶部
复制成功!