zoukankan      html  css  js  c++  java
  • em与rem之间的区别以及移动设备中的rem适配方案

    em与rem之间的区别:

    • 共同点:
    1. 它们都是像素单位
    2. 它们都是相对单位
    • 不同点:
    1. em大小是基于父元素的字体大小
    2. rem大小是基于根元素(html)的字体的大小

    实例:

    <!DOCTYPE html>
    <html lang="en" style="font-size: 50px">
    <head>
        <meta charset="UTF-8">
        <title>Document</title>
        <style>
            body {
                margin: 0;
                padding: 0;
                line-height: 1;
            }
            .container {
                font-size: 25px;
            }
            .em {
                font-size: 2em;
            }
            .rem {
                font-size: 2rem;
            }
        </style>
    </head>
    <body>
        <div class="container">
            <div class="em">AAAAA</div>
            <div class="rem">AAAAA</div>
        </div>
    </body>
    </html>

    rem适配方案:

    • 核心原理:宽度和高度都能做到适配(等比缩放)
    • 通过控制 html 元素上的字体大小去控制页面上所有以rem为单位的基准值,控制尺寸
    • 核心换算公式:当前rem基准值 = 预设基准值 / 设计稿宽度 * 当前设备的宽度
    • 技术:媒体查询

    实例:

    • 预设基准值: 100px
    • 设计稿宽度:640px
    • 假设的设备:640px, 414px,  320px
    • 注意:由于媒体查询代码是从上往下执行的,所以代码书写顺序要从小到大(如果不的话,可以选择其他方案,例如:min-width 和 max-width 都设置)
    <!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, user-scalable=no">
        <title>rem适配</title>
        <style type="text/css">
            * {
                margin: 0;
                padding: 0;
            }
            /* 假设的设备 320 414 640 */
            @media (min- 320px) {
                html {
                    font-size: 50px;
                }
            }
            @media (min- 414px) {
                html {
                    font-size: 64.6875px; /* 100/640*414 */
                }
            }
            @media (min- 640px) {
                html {
                    font-size: 100px;
                }
            }
            /* rem适配 */
            header {
                width: 100%;
                height: 1rem;
                line-height: 1rem;
                font-size: 0.32rem;
                text-align: center;
                background: green;
                color: #fff;
            }
        </style>
    </head>
    
    <body>
        <header>购物车</header>
    </body>
    
    </html>
  • 相关阅读:
    欧拉公式求四面体的体积
    欧拉公式求四面体的体积
    I
    I
    闭包传递(floyed)
    闭包传递(floyed)
    Python hypot() 函数
    Python cos() 函数
    Python atan2() 函数
    Python atan() 函数
  • 原文地址:https://www.cnblogs.com/duxiu-fang/p/11085690.html
Copyright © 2011-2022 走看看