移动web

134 阅读2分钟

移动web(01)

字体图标

优点

一 灵活 随时修改颜色和尺寸(color font-si

  • 引入下载 www.iconfont.com

  • 轻量级 体积小 渲染快 降低服务器请求次数

  • ​ 兼容性好

  • 使用方便

<!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>
    <link rel="stylesheet" href="./iconfo/iconfont.css">
    <style>
        span{
            /* 设置字体家族引入iconfont样式 */
            font-family: "iconfont";
        }
        .nav{
            /* 调节大小和颜色和基础班一样一样的 */
            color: yellow;
            font-size: 50px;
        }
        .nav1{
            color: blue;
            font-size: 50px;
        }
    </style>
</head>
<body>
    <!-- 引入Unicode里面的代码 -->
    <span class="nav">&#xe63b;</span>
    <span class="nav1">&#xe651;</span>
</body>
</html>

二 ,font-class

<!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>
    <!-- 导入iconfont样式表 -->
    <link rel="stylesheet" href="./iconfo/iconfont.css">
    <style>
        /* 选择导入的类名*/
      .si{
            /* 调节大小和颜色都和基础班学的一样的 */
            font-size: 50px;
            color: red;
        }
    </style>
</head>
<body>
    <!-- 导入iconfont样式表  里面的类名必须是iconfont样式表名称,第二个类名必须是iconfont里面的样式 -->
    添加其他的类名
    <span class="iconfont icon-icon-test1
    si"></span>
</body>
</html>

如何使用svg上传生成对应的字体

1647256624355.png

1647256656516.png

平面转换

平面位移

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

    • 平面转换
      • 改变盒子在平面内的形态(位移、旋转、缩放)
      • 2D转换
    • 平面转换属性
      • transform
  • 使用 translate实现元素位移效果

    • 语法

      • transformtranslate(水平移动距离,垂直移动距离);
    • 取值(正负均可)

      • 像素单位数值px
      • 百分比(参照物为盒子自身尺寸)
        • 注意:x****轴正向为右y轴正向为下
    • 技巧

      • transform()如果只给出一个值,表示x轴方向移动距离

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

    居中方法

    <!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>
            .box{
                position: relative;
                width: 500px;
                height: 500px;
                background-color: yellow;
            }
            .box1{
                position: absolute;
                left: 50%;
                top: 50%;
                width: 300px;
                height: 300px;
                background-color: blue;
                /* 位移translate 百分比单位 现象对于自身的宽度和高度 */
                transform: translate(-50%,-50%);
            }
        </style>
    </head>
    <body>
        <div class="box">
            <div class="box1">
    
            </div>
        </div>
    </body>
    </html>
    

使用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{
            position: relative;
            margin: 100px auto;
            width: 1366px;
            height: 600px;
            background-color: yellow;
            /* 不让子元素超出父元素 */
            overflow: hidden;
            background-image: url("../../01-移动web/01-Day/01-课堂案例/02-平面转换/03-案例-双开门/images/bg.jpg");
        }
        .box1,.box2{
            position: absolute;
            width: 50%;
            height: 600px;
            /* 添加过度 */
            transition: all 1s;
            background-image: url("../../01-移动web/01-Day/01-课堂案例/02-平面转换/03-案例-双开门/images/fm.jpg");
            

        }
        .box1{
            background-color: pink;
            left: 0px;

        }
        .box2{
            background-color: blue;
            right: 0px;
            /* 加right 让图片从右边对齐 */
            background-position:right;
        }
        /* 鼠标移上去让盒子往左移动 */
        .box:hover .box1{
            /* 设置left往左移动 自身的宽度 - 刚好看不见 */
            /* 位移自身宽度 用百分比单位比较方便 */
            transform: translateX(-100%);
            /* 
            设置盒子往左移动
              1 定位
               2.margin
               3.位移 动态 酷炫效果 建议 位移 性能优化
             */
        }
        .box:hover .box2{
            transform: translateX(100%);
        }
    </style>
</head>
<body>
    <div class="box">
        <div class="box1"></div>
        <div class="box2"></div>
    </div>
</body>
</html>
<!-- 
    思想
    1 先实现主要(大概的位置 布局
       1  大盒子和两个小盒子的位置摆放 (加上颜色)定位
    2 再去实现次要的
      1 特效  位移 translate  过度

      2  背景图片效果等
 -->

旋转

目标:使用rotate实现元素旋转效果

  • 语法
    • transform: rotate(角度);
    • 注意:角度单位是deg
  • 技巧:取值正负均可
    • 取值为正, 则顺时针旋转
    • 取值为负, 则逆时针旋转

目标:使用transform-origin属性改变转换原点

  • 语法

    • 默认圆点是盒子中心点
    • transform-origin: 原点水平位置原点垂直位置;
  • 取值

    • 方位名词(left、top、right、bottom、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>Document</title>
        <style>
            img{
                display: block;
                border: 1px solid red;
                height: 500px;
                width: 500px;
                margin: 50px auto;
                /* all可以省略 */
                transition: 2s;
                /* transform-origin:像素单位 px */
                /* transform-origin:方位代码 */
                /* transform-origin:百分比 */
                transform-origin: left bottom;
            }
            img:hover{
                transform: rotate(720deg);
            }
        </style>
    </head>
    <body>
        <img src="../../01-移动web/01-Day/01-课堂案例/02-平面转换/images/rotate.png" alt="">
    </body>
    </html>
    
  • transform复合属性实现多形状态转换

    • 示例
    transform:translate() rotate();
    
  • 使用transform复合属性实现多形态转换

    • 多重转换原理
      • 旋转会改变网页元素的坐标轴向
      • 先写旋转,则后面的转换效果的轴向以旋转后的轴向为准,会影响转换结果

缩放

使用scale改变元素的尺寸

  • 思考:改变元素的width或height属性能实现吗?
  • 语法
    • transform: scale(x轴缩放倍数, y轴缩放倍数);
  • 技巧
    • 一般情况下, 只为scale设置一个值, 表示x轴和y轴等比例缩放
      • transform:scale(缩放倍数);
      • scale值大于1表示放大, scale值小于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>Document</title>
    <style>
        *{
            margin: 0;
            padding: 0;
            box-sizing: border-box;
        }
        .box{
            width: 250px;
            border: 1px solid black;
            margin: 100px auto;
            position: relative;
            overflow: hidden;
        }
        p{
            padding: 10px 0;
        }
        .box .dd{
            width: 100%;
        }
    
        .play{
            position: absolute;
            left: 50%;
            top: 40px;
        
            transform:translate(-50%) scale(5)  ;
            /* 透明 *//* 透明程度 */
            opacity: 0;
            /* 过度 */
            transition: all 1s;
        }
        .box:hover .play{
            transform:translate(-50%)  scale(1);
            
            opacity: 1;
        }
        

    </style>
</head>
<body>
    <div class="box">
        <img class="dd" src="../../移动web预习资料/day01/01-课堂案例/02-平面转换/08-和平精英-缩放/images/party.png" alt="">
        <p>【和平精英】“初火”音乐概念片:四圣觉醒.....</p>
       
            <img class="play" src="../../移动web预习资料/day01/01-课堂案例/02-平面转换/08-和平精英-缩放/images/play.png" alt="">
        
        
    </div>
   
</body>
</html>

渐变

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

  • 渐变是多个颜色逐渐变化的视觉效果

  • 一般用于设置盒子的背景

    示例

1647258479271.png

1647258507042.png