zoukankan      html  css  js  c++  java
  • 移动端适配

    方案一,淘宝百度方案,

    核心过程:

    1.根字体 = ( 设备横向独立像素值 * 100 (苹果6固定)) / 设计稿宽度
    2.编写样式时:
    直接以rem为单位。
    值为:设计值 / 根字体

    设计稿宽度不变,苹果6的根字体固定100px,所以当rem不变, 物理像素变大,换设备,需要计算根字体。根字体变小

    <!DOCTYPE html>
    <html lang="en">
      <head>
        <meta charset="UTF-8" />
        <meta name="viewport" content="width=device-width, initial-scale=1.0" />
        <title>Document</title>
        <style>
          * {
            margin: 0;
            padding: 0;
          }
          html {
            font-size: 100px;
          }
          #demo {
             3.45rem;
            height: 1.5rem;
            margin: 0.15rem;
            background-color: pink;
    
            /* 
                em: 是相对单位 相对父级的字体大小
                rem: 也是相对单位 相对跟元素素的字体大小
            
             */
          }
        </style>
      </head>
      <body>
        <script>
          // 为了适配不同的手机屏幕,需要动态的计算不同的手机,跟字体应该是多少
          // 公式: 当前设备的独立像素*100/设计稿的宽度 ==> 跟字体的大小
          // 下面这行代码拿到的是布局视口, 但是由于设置了理想视口,所以布局视口的宽度就是设备独立像素的宽度
          // console.log(document.documentElement.clientWidth)
          function adapter() {
         //获取当前物理设备像素 
    const w = document.documentElement.clientWidth // 计算当前设备的跟字体应该是多少 const rootFontSize = (w * 100) / 375 // 给根元素赋值,记得要加px单位 document.documentElement.style.fontSize = rootFontSize + 'px' } adapter() // 注意:切换设备,导致设备独立像素发生变化,因为设置了理想视口,所以布局视口也会变化,会触发window.onresize // window.onresize = function() { // adapter() // } window.onresize = adapter </script> <div id="demo"></div> </body> </html>

    方案二,搜狐,唯品会方案

     核心过程:

    1. 根字体 = 设备横向独立像素值 / 10

    2.编写样式时:

    直接以rem为单位。

    值为:设计值 / (设计稿宽度 / 10)

    <!DOCTYPE html>
    <html lang="en">
      <head>
        <meta charset="UTF-8" />
        <meta name="viewport" content="width=device-width, initial-scale=1.0" />
        <title>Document</title>
        <style>
          * {
            margin: 0;
            padding: 0;
          }
          html {
            font-size: 100px;
          }
          #demo {
             9.2rem;
            height: 4rem;
            margin: 0.4rem;
            background-color: pink;
    
            /* 
                em: 是相对单位 相对父级的字体大小
                rem: 也是相对单位 相对跟元素素的字体大小
            
             */
          }
        </style>
      </head>
      <body>
        <script>
          // 方式二:
          // 1. 设置跟字体大小: 永远是设备独立像素/10
          // 2. 动态计算设计稿px对应的rem是多少
          function adapter() {
            const w = document.documentElement.clientWidth
            // 计算当前设备的跟字体应该是多少
            const rootFontSize = w / 10
            // 给根元素赋值,记得要加px单位
            document.documentElement.style.fontSize = rootFontSize + 'px'
          }
          adapter()
    
          window.onresize = adapter
        </script>
        <div id="demo"></div>
      </body>
    </html>

    第二种方法,非375设计图,是750设计图,和less一起搞

    <!DOCTYPE html>
    <html lang="en">
      <head>
        <meta charset="UTF-8" />
        <meta name="viewport" content="width=device-width, initial-scale=1.0" />
        <title>Document</title>
        <link rel="stylesheet" href="./index.css">
        <style>
          /* * {
            margin: 0;
            padding: 0;
          }
          html {
            font-size: 100px;
          }
          #demo {
             9.2rem;
            height: 4rem;
            margin: 0.4rem;
            background-color: pink; */
    
            /* 
                em: 是相对单位 相对父级的字体大小
                rem: 也是相对单位 相对跟元素素的字体大小
            
             */
          /* } */
        </style>
      </head>
      <body>
        <script>
          // 方式二:
          // 1. 设置跟字体大小: 永远是设备独立像素/10
          // 2. 动态计算设计稿px对应的rem是多少
          function adapter() {
            const w = document.documentElement.clientWidth
            // 计算当前设备的跟字体应该是多少
            const rootFontSize = w / 10
            // 给根元素赋值,记得要加px单位
            document.documentElement.style.fontSize = rootFontSize + 'px'
          }
          adapter()
    
          window.onresize = adapter
        </script>
        <div id="demo"></div>
      </body>
    </html>

    less,  750的设计图

    @font: 750/10rem;
    * {
      margin: 0;
      padding: 0;
    }
    
    #demo {
       690 / @font;
      height: 300 / @font;
      margin: 30 / @font;
      background-color: pink;
    }

     设计稿

  • 相关阅读:
    【Matlab】把一年中的某一天(从1月1日起)换算成日期
    【工具】用hexo搭建博客
    【工具】文献分析工具histcite的简单使用
    【工具】用PPT排版打印海报时图片分辨率问题
    【工具】PPT插入高清图片保存后图片变模糊的解决方法
    【工具】排版软件TeX Live 2016的简单使用
    【工具】文字识别软件(OCR) ABBYY Finereader 11简单使用
    【Matlab】编程风格摘录
    【信号】用matlab实现一维信号的高斯滤波
    【GMT5】用GMT绘制测高卫星Topex_Poseidon_Jason的地面轨迹
  • 原文地址:https://www.cnblogs.com/fsg6/p/13591330.html
Copyright © 2011-2022 走看看