標籤:

移動端是怎麼做適配的?

移動端是怎麼做適配的?

這裡介紹個方案包含5個點:1、meta viewport;2、媒體查詢;3、動態rem方案;4、對rem微調;5、其他細節補充。

一、meta viewport

在head標籤內部加上這段代碼

<meta name="viewport" content="width_=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">

該meta標籤的作用是讓當前viewport的寬度等於設備的寬度,同時不允許用戶手動縮放。也許允不允許用戶縮放不同的網站有不同的要求,但讓viewport的寬度等於設備的寬度。

width_=device-width: 讓當前viewport寬度等於設備的寬度user-scalable=no: 禁止用戶縮放initial-scale=1.0: 設置頁面的初始縮放值為不縮放maximum-scale=1.0: 允許用戶的最大縮放值為1.0minimum-scale=1.0: 允許用戶的最小縮放值為1.0

二、媒體查詢(響應式)

格式一:

@media ()and(){}//滿足()里的條件,就執行大括弧里css的樣式

舉例:

<style>@media (max-width:320px){ body{ background:red; }}@media (min-width:321px) and (max-width:320px){ body{ background:orange; }}@media (min-width:376px) and (max-width:425px){ body{ background:green; }}@media (min-width:426px) and (max-width:768px){ body{ background:blue; }}@media (min-width:769px){ body{ background:grey; }} </style>

格式二並舉例:

<link rel="stylesheet" href="style.css"media="(max-width:320px)">

注意點:

1、link標籤會下載好,但是是否生效取決於media的條件;

2、有PC端經驗,就有移動端經驗,只是多了一個media查詢;

3、通過添加多個css樣式來滿足不同的屏幕寬度;

4、響應式不怎麼實用,主要用來面試吧~

三、動態rem方案

1rem等於根元素html的font-size的值,那麼可以調整根元素的font-size值來調整頁面縮放後的各個元素的尺寸和定位。

在script標籤加入這段代碼:

<script> var pageWidth=window.innerWidth //獲取屏幕寬度 document.documentElement.fontSize = window.innerWidth / 10 + px</script>

此處,fontSizede的值為屏幕寬的十分之一,那麼在寫CSS的時候可以這樣寫:

.xxx{ width:0.4rem; height:0.2rem; margin:0.05rem 0.05rem; float:left; }

用sass將px轉化為rem:

@function px( $px ){ @return $px/$designWidth*10 + rem;}$designWidth: 320px; 那麼1rem=32px

四、對動態rem進行微調

1、rem都是小數很不方便。所以讓 html 的 font-size 的尺寸等於 window.innerWidth/10;

2、瀏覽器默認可設置的最小字體大小為12px,瀏覽器默認可設置的最小字體大小為12px,瀏覽器默認可設置的最小字體大小為12px;

3、在精細的地方,就直接寫像素,混用px rem em

  • 比如border:1px solid red;
  • 比如頁面字體的大小就直接寫font-size:16px

五、其他補充

1、px em rem vh vw的區別

px:表示像素em:一個字的高度 //1em == 自己font-size的值rem:root em // 根元素html的font-sizevh:viewport height 視口高度=100vhvw:viewport width 視口寬度=100vw

2、body默認字體為16px,其中chrome默認可設置的最小字體大小為12px,更改body的font-size是rem是不會變的,更改的必須是html的font-size。

3、百分比布局和整體縮放布局的區別

百分比布局:無法讓高度跟著屏幕寬度改變而進行有比例的改變,高度和寬度無法做任何的配合;

整體縮放布局:一切單位以寬度為基準,就能完美還原設稿。


推薦閱讀:

如何根據你的網站創建一個移動 APP
移動端flexible.js
四. caffe2 我怕是要放棄了...
聯合學習:Android去中心化的分散式機器學習

TAG:移動端 | cssrem |