HTML、CSS学习笔记3(平面转换:位移、旋转、缩放,渐变)

1.平面转换

使用 transform 属性实现元素的位移、旋转、缩放等效果

  • 2D转换

    • 2D转换是改变标签在二维平面上的位置和形状

    • 移动:translate

    • 旋转:rotate

    • 缩放:scale

1.1位移translate

  • translate语法

    • x就是X轴上水平移动,正向为右

    • y就是y轴上水平移动,正向为下

    • 单独设置某个方向的移动距离:translateX()  &  translateY()

  transform: translate(x, y)
  transform: translateX(n)
  transfrom: translateY(n)  
  • 重点知识点

    • 取值,正负均可,像素单位

    • 百分比(是相对于本身的宽度和高度来进行计算的)

    • 2D的移动主要是指水平、垂直方向上的移动

    • translate最大的优点就是不影响其他元素的位置

    • 行内标签没有效果

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>位移-基本使用</title>
    <style>
        .father {
            width: 500px;
            height: 300px;
            margin: 100px auto;
            border: 1px solid #000;
        }

        .son {
            width: 200px;
            height: 100px;
            background-color: pink;
            transition: all 0.5s;
        }

        .father:hover .son {
            /* 百分比(是相对于本身的宽度和高度来进行计算的) */
            transform: translate(100%, 50%);

            /* transform: translate(100px,50px); */


            /* 水平移动 100px */
            /* transform: translate(100px, 0) */

            /* 垂直移动 100px */
            /* transform: translate(0, 100px) */

            /* 水平移动 100px */
            /* transform: translateX(100px); */

            /* 垂直移动 100px */
            transform: translateY(100px);
        }
    </style>
</head>

<body>
    <div class="father">
        <div class="son"></div>
    </div>
</body>

</html>

(D:\前端基础\2023寒假web学习\题目\2移动web开发\素材(1)\素材) 

让一个盒子水平垂直居中

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>绝对定位元素居中效果</title>
    <style>
        .father {
            position: relative;
            width: 500px;
            height: 300px;
            margin: 100px auto;
            border: 1px solid #000;
        }
        
        .son {
            position: absolute;
            left: 50%;
            top: 50%;
            /* margin-left: -100px;
            margin-top: -50px; */

            /* 用translate比较方便,适用于宽高不是整数值 */
            transform: translate(-50%,-50%);

            width: 203px;
            height: 100px;
            background-color: pink;          
        }
    </style>
</head>
<body>
    <div class="father">
        <div class="son"></div>
    </div>
</body>
</html>

(D:\前端基础\2023寒假web学习\题目\2移动web开发\素材(1)\素材) 

案例:使用translate实现元素位移效果

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        * {
            margin: 0;
            padding: 0;
        }
        
        .box {
            width: 1366px;
            height: 600px;
            margin: 0 auto;
            background: url('./images/bg.jpg');
            overflow: hidden;
            overflow: hidden;
        }
        
       .box::before,
       .box::after {
        content: '';
        float: left;
        width: 50%;
        height: 600px;
        background: url(./images/fm.jpg);
        transition: all .5s;
       }

       .box::after {
        /* 取右边图 */
        background-position: right 0;
       }

       /* 鼠标移动的时候的位置改变的效果 */
       .box:hover::before {
        transform: translate(-100%);

       }

       .box:hover::after {
        transform: translate(100%);

       }



    </style>
</head>

<body>
    <div class="box">

    </div>
</body>

</html>

(D:\前端基础\2023寒假web学习\题目\2移动web开发\素材(1)\素材) 

1.2 2D 转换之rotate旋转

  • rotate旋转

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

/* 单位是:deg */
img:hover {
  transform: rotate(360deg)
}
  • rotate语法

    • rotate 里面跟度数,单位是 deg

    • 角度为正时,顺时针,角度为负时,逆时针

    • 默认旋转的中心点是元素的中心点

  • 设置元素旋转的中心的(transform-origin)--可改变转换的原点

    (D:\前端基础\2023寒假web学习\题目\2移动web开发\素材(1)\素材)

  transform-origin: x y;
  • 取值

  1. 方位名词(left、top、right、bottom、center)
  2. 像素单位数值
  3. 百分比(参照盒子自身尺寸计算)
  • 注意

    • 默认圆点是盒子中心点
    • 后面的参数 x 和 y 用空格隔开

    • x y 默认旋转的中心点是元素的中心(50% 50%),等价于center center

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>转换原点</title>
    <style>
        img {
            width: 250px;
            transition: all .5s;
            border: 1px solid #000;
            transform-origin: right bottom;
        }
        
        img:hover {
            transform: rotate(360deg);
        }


    </style>
</head>
<body>
    <img src="./images/rotate.png" alt="">
</body>
</html>

 多重转换

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>多重转换</title>
    <style>
        .box {
            width: 800px;
            height: 200px;
            border: 1px solid #000;
        }
        
        img {
            width: 200px;
            transition: all 3s;
        }
        
        .box:hover img {
            /* 边走边转 */
            /* 正确走法 */
            transform: translate(600px) rotate(360deg);

            /* 错误,沿着旋转的路在水平走600px */
            /* 旋转会改变坐标轴方向 */
            /* transform: rotate(360deg) translate(600px); */
        }




    </style>
</head>

<body>
    <div class="box">
        <img src="./images/tyre1.png" alt="">
    </div>
</body>

</html>

1.3 2D 转换之scale缩放

  • scale的作用:用来控制元素的放大与缩小

transform: scale(x, y)
  • 知识要点:

    • 注意,x(x轴缩放倍数)与y(y轴缩放倍数)之间用逗号进行分隔

    • transform: scale(1, 1): 宽高都放大一倍,相当于没有放大

    • transform: scale(2, 2): 宽和高都放大了二倍

    • transform: scale(2): 如果只写了一个参数,第二个参数就和第一个参数一致

    • transform:scale(0.5, 0.5): 缩小

    • scale 最大的优势:可以设置转换中心点缩放,默认以中心点缩放,而且不影响其他盒子

   div:hover {
    /* 注意,数字是倍数的含义,所以不需要加单位 */
    /* transform: scale(2, 2) */
   
    /* 实现等比缩放,同时修改宽与高 */
    /* transform: scale(2) */
   
    /* 小于 1 就等于缩放*/
    transform: scale(0.5, 0.5)
   }

 

2D 转换综合写法以及顺序问题

知识要点

  • 同时使用多个转换,其格式为 transform: translate() rotate() scale()

  • 顺序会影响到转换的效果(先旋转会改变坐标轴方向)

  • 当我们同时有位置或者其他属性的时候,要将位移放到最前面

div:hover {
  transform: translate(200px, 0) rotate(360deg) scale(1.2)
}

2.渐变

(D:\前端基础\2023寒假web学习\题目\2移动web开发\学习包\素材(2)\素材(渐变))

使用backgroung-image属性实现渐变背景效果

  • 渐变是多个颜色逐渐变化的视觉效果
  • 一般用于设置盒子的背景
background-image: linear-gradient(
    颜色1,
    颜色2
);

3.综合案例:

1.  D:\前端基础\2023寒假web学习\题目\2移动web开发\学习包\2.2.5作业\作业\03-华为新闻综合案例 

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值