• 移动 WEB 开发布局方式 ---- rem 适配布局


    在这里插入图片描述

    一、rem 基础

    1. rem 单位

    em :
    相对于父元素的字体大小来说的

    <div>
        <p></p>
    </div>
    
    div {
            font-size: 12px;
        }
        p {
             10em;
            height: 10em;
            background-color: pink;
        }
    

    在这里插入图片描述

    rem:
    相对于 html 元素字体大小来说的

        html {
            font-size: 16px;
        }
        div {
            font-size: 12px;
        }
        p {
            /* 10em;*/
            /*height: 10em;*/
             10rem;
            height: 10rem;
            background-color: pink;
        }
    

    在这里插入图片描述

    总结:rem的优点就是可以通过修改html里面的文字大小来改变页面中元素的大小,页面中元素大小可以控制

    二、媒体查询

    2.1 什么是媒体查询

    在这里插入图片描述

    2.2 语法规范

    在这里插入图片描述

    1. mediatype 媒体类型

    在这里插入图片描述

    2. 关键字

    在这里插入图片描述

    3. 媒体特性

    在这里插入图片描述
    栗子:

    <style>
        /*这句话的意思就是:在我们屏幕上,并且 最大的宽度是 800像素 设置我们想要的样式*/
        /*max-width 小于等于800*/
        /*媒体查询可以根据不同的屏幕尺寸在改变不同的样式*/
        @media screen and (max- 900px){
          body{
              background-color: pink;
           }
        }
        @media  screen  and (max- 600px) {
            body{
                background-color: purple;
            }
        }
    </style>
    

    在这里插入图片描述
    栗子2:根据页面宽度改变页面背景颜色
    在这里插入图片描述
    在这里插入图片描述

    <style>
        /*1. 小于 540 px 页面的背景变为蓝色*/
        @media screen and (max- 539px){
            body{
                background-color: blue;
            }
        }
        /*2. 540~970 页面的背景变成绿色*/
        /*@media screen and (min- 540px) and (max- 969px) {*/
        /*    body {*/
        /*        background-color: green;*/
        /*    }*/
        /*}*/
        /*简写为:*/
        @media screen and (min- 540px){
            body{
                background-color: green;
            }
        }
        /*3.大于等于 970 页面背景变成红色  */
         @media screen and (min-970px){
            body{
                background-color: red;
            }
        }
    </style>
    

    在这里插入图片描述

    2.3 媒体查询 + rem 实现元素动态变化

    在这里插入图片描述
    栗子:

    <style>
        *{
            margin: 0;
            padding: 0;
        }
        @media screen and (min- 320px) {
            html{
                font-size: 50px;
            }
        }
    
        @media screen and (min- 640px){
            html{
                font-size: 100px;
            }
        }
        .top {
            height: 1rem;
            font-size: 0.5rem;
            background-color: deeppink;
            color: #ffffff;
            text-align: center;
            line-height: 1rem;
        }
    </style>
    <body>
    <div class="top">购物车</div>
    </body>
    

    在这里插入图片描述

    2.4 引入资源

    1 .语法规范

    在这里插入图片描述

    栗子:

    需求:当我们屏幕大于等于 640px 以上的,我们让 div 一行显示 2 个
    当我们屏幕小于 640 我们让div一行显示一个
    建议媒体查询最好的方法是从小到大

    <link rel="stylesheet" href="style320.css" media="screen and (min-320px)">
    <link rel="stylesheet" href="style640.css" media="screen and (min-640px)">
    
    <body>
    <div>1</div>
    <div>2</div>
    </body>
    

    style320.css

    div {
         100%;
        height: 100px;
    }
    div:nth-child(1){
        background-color: pink;
    }
    div:nth-child(2){
        background-color: purple;
    }
    

    style640.css

    div {
         50%;
        height: 100px;
        float: left;
    }
    div:nth-child(1){
        background-color: pink;
    }
    div:nth-child(2){
        background-color: purple;
    }
    

    在这里插入图片描述

    总结:引入资源就是 针对不同的屏幕尺寸 调用不同的 CSS 文件

    三、Less 基础

    3.1 Less作用(维护 css 的弊端)

    在这里插入图片描述

    3.2 Less介绍

    在这里插入图片描述

    3.3 Less 使用

    在这里插入图片描述

    3.4 Less 变量

    在这里插入图片描述
    栗子:

    //定义一个颜色为粉色的变量
    @color:pink;
    //定义一个 字体为141像素的变量
    @font14:14px;
    body {
      background-color: @color;
    }
    div {
      background-color: @color;
      font-size: @font14;
    }
    a{
      font-size: @font14;
    }
    

    注意:
    错误的变量名 @1color @color~#
    变量名区分大小写 @color 和 @Color 是两个不同的变量

    3.5 Less 编译

    在这里插入图片描述
    vocode Less插件

    Easy LESS 插件用来把 less 文件编译成 css 文件

    1. 安装完毕插件,重新下载下 vscode

    在这里插入图片描述

    1. 只要保存一下 Less 文件,会自动生成CSS 文件

    在这里插入图片描述

    在这里插入图片描述

    1. 当修改 my.less 保存的时候 ,my.css 会自动的去修改

    栗子:
    my.less

    //定义一个颜色为粉色的变量
    @color:pink;
    //定义一个 字体为24像素的变量
    @font14:24px;
    //错误的变量名 @1color @color~#
    //变量名区分大小写 @color 和 @Color 是两个不同的变量
    body {
      background-color: @color;
    }
    div {
      background-color: @color;
      font-size: @font14;
    }
    

    21.less的使用.html

    <link rel="stylesheet" href="my.css">
    
    <body>
    <div>谁还不是一个小仙女呢!</div>
    </body>
    

    在这里插入图片描述

    3.6 Less 嵌套

    1. 选择器的嵌套
      在这里插入图片描述

    栗子:

    less文件

    .header {
         200px;
        height: 200px;
        background-color:pink;
       // less嵌套 子元素的样式直接写到父元素里面即可
        a {
            color: red;
        }
    }
    

    被编译成css文件如下

    .header {
       200px;
      height: 200px;
      background-color: pink;
    }
    .header a {
      color: red;
    }
    
    1. 交集、伪类、伪元素选择器的嵌套
      在这里插入图片描述

    伪类栗子:
    less文件

    .header {
         200px;
        height: 200px;
        background-color:pink;
        a {
            color: red;
            &:hover {
                color: blue
            }
        } 
    }
    

    被编译成css文件如下

    .header {
       200px;
      height: 200px;
      background-color: pink;
    }
    .header a {
      color: red;
    }
    .header a:hover {
      color: blue;
    }
    

    伪元素栗子:
    less 文件

    .nav {
       .logo{
           color: red;
       }
       &::before{
        content: "";
       }    
    }
    

    被编译成css 文件如下

    .nav .logo {
      color: red;
    }
    .nav::before {
      content: "";
    }
    
    

    3.7 Less 运算

    在这里插入图片描述
    在这里插入图片描述

    栗子1:
    less文件

    @border:5px + 5;
    div {
        200px - 50;
       height: 200px * 2;
       border:@border solid red
    }
    img {
       82 / 50rem;
       height: 82 / 50rem;
    }
    

    css 文件

    div {
       150px;
      height: 400px;
      border: 10px solid red;
    }
    img {
       1.64rem;
      height: 1.64rem;
    }
    
    

    栗子2:
    less文件

    @baseFont:50px;
    html{
        font-size: @baseFont;
    }
    img {
         82rem / @baseFont;
        height: 82rem / @baseFont;
    }
    
    

    css 文件

    html {
      font-size: 50px;
    }
    img {
       1.64rem;
      height: 1.64rem;
    }
    
    

    总结:
    1.运算符的左右两侧必须用空格隔开
    2. 两个数参与运算,如果只有一个数有单位,则最后的结果就以这个单位为准
    3. 两个数参与运算,如果两个数都有单位,并且单位不一致,则最后的结果以第一个数的单位为准

    注意:
    颜色也可以参与运算,比如
    less文件
    background-color:#666 - #222
    css 文件:
    background-color:#444

    四、 rem 适配方案

    在这里插入图片描述
    在这里插入图片描述

    4.1 rem 实际开发适配方案

    在这里插入图片描述

    4.2 rem 适配方案技术使用(市场主流)

    在这里插入图片描述

    4.3 rem 实际开发适配方案一

    rem + 媒体查询 + less

    1. 设计稿常见尺寸宽度

    在这里插入图片描述

    2. 动态设置html 标签 font-size 大小

    在这里插入图片描述

    栗子:

    <style>
        *{
            margin: 0;
            padding: 0;
        }
        @media screen and (min-320px){
            html{
                font-size: 22px;
            }
        }
        @media screen and (min-750px){
            html{
                font-size: 50px;
            }
        }
        div {
             2rem;
            height: 2rem;
            background-color:pink;
        }
    </style>
    </head>
    <body>
    <div></div>
    </body>
    

    大屏下宽和高是 100px * 100px的
    小屏下宽和高是 44px * 44px的
    达到等比例缩放的效果

    3. 元素大小取值的计算方法

    在这里插入图片描述

    总结:
    原型大小的盒子 就是页面元素值: 100px * 100px
    屏幕宽度:750px
    划分的份数:15等份
    屏幕宽度 / 划分的份数 就是 html font-size 的大小 = 750 / 15 = 50
    页面元素的 rem值 : 100 / 50 = 2rem

    五、苏宁首页案例制作

    https://www.cnblogs.com/Chinatsu/p/14130701.html

    六、rem 适配方案二

    6.1 简洁高效的 rem 适配方案 flexible.js

    在这里插入图片描述

    6.2 使用 rem 适配方案二制作苏宁移动端首页

    https://www.cnblogs.com/Chinatsu/p/14130714.html

  • 相关阅读:
    Python常用转换函数
    Python随机数
    sublime text的pylinter插件设置pylint_rc后提示错误
    使用Pydoc生成文档
    字符编码笔记:ASCII,Unicode和UTF-8
    Windows编程MessageBox函数
    魔方阵算法及C语言实现
    iOS通讯录整合,兼容iOS789写法,附demo
    谈谈iOS app的线上性能监测
    ReactiveCocoa代码实践之-更多思考
  • 原文地址:https://www.cnblogs.com/Chinatsu/p/14130720.html
Copyright © 2020-2023  润新知