rem佈局簡介

移動端常見佈局:javascript

  1.流式佈局html

  高度固定,寬度自適應java

  2.響應式佈局git

  可以用一套代碼適應不一樣尺寸屏幕github

  3.rem佈局佈局

  寬高自適應,能實現整個頁面像一張圖片同樣縮放且不失真的效果。字體

rem佈局:flex

  • em:是一個相對單位,計算方法爲用元素的帶px屬性值除以自身字體大小,用的不多。
  • rem:是一個相對單位,計算方法爲一個html文件中任意元素的帶px屬性值除以根元素html的字體大小,從而實現寬高自適應。

簡單實例:ui

  1.em佈局spa

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <meta http-equiv="X-UA-Compatible" content="ie=edge">
  <title>Document</title>
  <style>
    div {
      font-size: 100px;
      width: 4em; /* 400px */
      height: 4em; /* 400px */
      background-color: pink;
    }
  </style>
</head>
<body>
  <div>我是400*400的盒子</div>
</body>
</html>

  效果如圖:div內字體大小爲100px

  2.rem佈局

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <meta http-equiv="X-UA-Compatible" content="ie=edge">
  <title>Document</title>
  <style>
    html {
      font-size: 100px;
    }
    div {
      font-size: 16px;
      width: 4rem; /* 400px */
      height: 4rem; /* 400px */
      background-color: pink;
    }
  </style>
</head>
<body>
  <div>我是400*400的盒子</div>
</body>
</html>

  效果如圖:div內字體大小爲16px

rem佈局實現自適應:

  1.配合媒體查詢

<!DOCTYPE html>
<html lang="zh-CN">
<head>
  <meta charset="UTF-8">
  <title>Title</title>
  <meta name="viewport"
        content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
  <style>
    /* 一個盒子, 在 750 屏幕上顯示 200*200,   在375屏幕上顯示 100*100 */
    
    /* 375px屏幕中, font-size: 50px */
    @media screen and (width: 375px){
      html {
        font-size: 50px;
      }
    }
    /* 750px屏幕中, font-size: 100px */
    @media screen and (width: 750px){
      html {
        font-size: 100px;
      }
    }
    div {
      width: 2rem;
      height: 2rem;
      background-color: pink;
    }
  </style>
</head>
<body>
  <div></div>
</body>
</html>

  2.經過javascript實現

<!DOCTYPE html>
<html lang="zh-CN">
<head>
  <meta charset="UTF-8">
  <title>Title</title>
  <style>
    body {
      font-size: 16px;
    }
    /* 設計圖尺寸 640px  基準值 100px */
    div {
      width: 2rem;
      height: 2rem;
      font-size: .3rem;
      background-color: pink;
    }
  </style>
</head>
<body>
  <div>我是自適應的文字</div>
  <script>
    var design = 640;
    var base = 100;
    function responsive() {
      var width = window.innerWidth;
      // 所求font-size = 當前屏幕寬度 / 設計圖 * 基準值
      var size = width / design * base;
      document.documentElement.style.fontSize = size + "px";
    }
    responsive();
    window.addEventListener("resize", responsive);
  </script>
</body>
</html>

  3.使用flexible.js

  flexible.js是淘寶移動適配方案,基本原理與上面的經過javascript實現自適應相同,可是作了不少兼容性處理,其中定義:基準值(即html根元素字體大小) = 設計圖尺寸 / 10。使用的時候直接在文件中引入包便可。

  下載地址:https://github.com/amfe/lib-flexible

相關文章
相關標籤/搜索