普歌-赤道团队:对CSS-2D转换的总结


CSS-2D转换是什么?二维坐标系是什么?

转换(transform)是css中具有颠覆性的特征之一,可以实现元素的位移,旋转,缩放等效果。
也可以把转换简单的理解为变形

一、要了解CSS-2D转换,首先要明白二维坐标系

在CSS中,二维坐标系是不同于数学中的坐标系哦!
如图:(上边为数学中的坐标轴,下边为二维坐标系)

1.位移(translate)

位移即为移动,移动盒子的位置我们学过三种方法:

  • 定位
  • 盒子的外边距
  • 2D转换移动

    位移的语法:
  1. transform:translate(x,y);
  2. transform:translate(x,y);
  3. 3.transform:translate(x,y);
    代码如下(示例):
  <style>
        div {
    
    
        /*我们此处准备了一个宽和高均为200像素的粉色盒子*/
            width: 200px;
            height: 200px;
            background-color:pink; 
            /* x就是x轴上移动位置 y就是y轴上移动位置 中间用逗号分隔 */
            /* 示例:transform:translate(x,y); */
            /* transform:translate(100px,100px); 即为盒子在x轴上移动100像素,在y轴上移动100像素*/
            /* 一.我们如果只移动x坐标,但是必须要写y坐标为零(下面为div盒子在x轴上移动的两种代码写法) */
            /* 1.transform:translate(100px,0); */
            /* 2.transform:translateX(100px); */
            /* 二.我们如果只移动y坐标,X坐标为零(下面为div盒子在y轴上移动的两种代码写法) */
            /* 1.transform:translate(0,100px); */
            /* 2.transform:translateY(100px); */
        } 
        /*此处设置两个div盒子进行效果展示*/
        div:first-child {
    
    
            transform:translate(30px,30px);
        }
        div:last-child {
    
    
            background-color: purple;
        }
    </style>

2D位移中的重点:

  1. 定义2D转换中的移动,沿着X和Y轴移动元素
  2. trasnslate最大的优点,并不会影响到其他元素的位置
  3. translate中的百分比单位是相对于自身元素的translate:(50%,50%)
  4. 对于是行内标签没有的效果

2.旋转(rotate)

2D旋转是指让元素在二维平面内顺时针或者逆时针旋转

旋转的语法:
transfrom:rotade(度数)
代码如下(示例):
此处楼主向body里面添加一张图片,有利于显示旋转效果,并且给图片加入了五像素的粉色圆形边框,加入了0.3秒的过渡,鼠标移动到图片上方即可看到效果。

  <style>
        img {
    
    
            width: 150px;
            /*顺时针旋转45°*/
            /* transform:rotate(45deg); */
            border-radius: 50%;
            border: 5px solid pink;
            /* 过渡写到本身上,谁做动画给谁加 */
            transition: all 0.3s;
        }
        img:hover {
    
    
            transform: rotate(360deg);
        }
    </style>

</head>

<body>
    <img src="./pic.jpg" alt="">
</body>
旋转的重点:
  1. rotate里面跟度数,单位是deg 示例:rotate(45deg);
  2. 角度为正时,顺时针,角度为负时,为逆时针。
  3. 默认旋转角度的中心点是元素的中心点

3.缩放(scale)

缩放,顾名思义,可以放大和缩小。只要给元素添加这个属性就可以控制它是放大还是缩小。
缩放的语法:
transfrom:scale(x,y);

 <style>
        div {
    
    
            width: 200px;
            height: 200px;
            background-color: pink;
            margin: 100px auto;
            transform-origin: left bottom;
        }

        div:hover {
    
    
            /* 1.里面写的数字不跟单位,就是倍数的意思 1就是1倍 2就是2倍 */
            /* transform:scale(x,y); */
            /* transform:scale(2,2);*/
            /*2. 修改后宽度为原来的两倍 宽度为原来的一倍  */
            /* transform:scale(2,1); */
            /* 3.等比例缩放 同时修改宽度和高度,我们有简单的写法,宽度修改为2倍,高度默认和第一个一样 */
            transform: scale(2);
            /* 4.我们可以进行缩小 小于1就是缩放 */
            /* transform:scale(0.5,0.5); */
            transform: scale(0.5);
            /* 5.scale的优势:不会影响其他盒子,而且不会影响盒子中心点 */
        }
    </style>
</head>
<body>
    <div></div>
</body>

缩放中的注意点:

  1. 注意其中的X和Y用逗号隔开
  2. transfrom:scale(1,1);宽度和高度都放大一倍,也就是没有变
  3. transfrom:scale(2,2);宽度好高度都放大的两倍
  4. transfrom:scale(2)只写了一个参数,第二个参数则和人第一个参数一样,相当于scale(2,2);
  5. transfrom:(0.5,0.5);宽度与高度都缩小0.5倍
  6. scale缩放的最大优势,可以设置转换中心点缩放,而且不影响其他盒子
    大家喜欢的话点个赞,评论一下哇!谢谢支持!

本文仅仅简单介绍了CSS-2D转换中,位移(translate),旋转(rotate), 缩放(scale)的使用。希望各位前端攻城狮给作者多提一些建议,文中有错误或者不当之处,评论区里请留言,作者定会及时改正!谢谢! 另外祝大家2021年,牛年大吉,牛运亨通!

猜你喜欢

转载自blog.csdn.net/weixin_51749544/article/details/113780881