1. 程式人生 > 其它 >頁面適配

頁面適配

頁面適配

佈局單位

vw,vh 相對視口大小的百分比大小
px:固定單位
不會隨著視口大小改變而改變
不會隨著裝置螢幕尺寸的大小改變而改變
em,rem:相對單位
em:相對父元素的 font-size 的大小
1em == 父元素的 font-size
2em == 2 _ 父元素的 font-size
rem:相對於根(html)的 font-size 大小
1rem == html 的 font-size 大小
2rem == 2 _ html 的 font-size 大小

自適應佈局

淘寶自適應方案:淘寶無限適配
UI 設計圖多大:移動端寬度 750px PC 端寬度 1920
前端除錯專案以 iPhone6 為基準 寬度 375px

淘寶自適應原理:

html 的 font-size 大小=1rem,因此可以通過改變 html 的 font-size 大小改變所有使用 rem 單位的元素大小
html 的 font-size 初始為 100px,即 100px=1rem。那麼 1px=0.01rem 方便計算
當視口變小時,等比縮小 html 的 font-size,即等比縮小 1rem,即等比縮小所有使用 rem 單位的元素
在縮小過程中,瀏覽器字型最小為 12px,當字型大小縮小到 12px 的時候不會繼續縮小

實戰演練

效果展示:

<!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>
  </head>
  <body>
    <div class="box">1rem</div>
    <div class="box1">2rem</div>
    <div class="box2">3rem</div>
    <script type="text/javascript">
      window.onresize = function () {
        // let designSize = 1920; // PC端設計圖尺寸
        let designSize = 750 // 移動端設計圖尺寸
        let html = document.documentElement // html節點
        let wW = html.clientWidth // 視口寬度
        let rem = (wW * 100) / designSize // 計算1rem為多少px
        document.documentElement.style.fontSize = rem + 'px' //將計算出的1rem的大小設定給html的font-size
      }
    </script>
    <style>
      html {
        font-size: 100px;
      }
      body {
        font-size: 0.16rem;
      }
      .box {
        width: 1rem;
        height: 1rem;
        background: #aaa;
      }
      .box1 {
        width: 2rem;
        height: 1rem;
        background: #444;
      }
      .box2 {
        width: 3rem;
        height: 1rem;
        background: red;
      }
    </style>
  </body>
</html>