設計稿對於前端來講是很是重要的,可是設計稿的單位是px,而h5的適配單位如今用得最多的是rem,百度了下都是比較老舊的實現方法,要麼本身去計算rem值,要麼依靠編輯器安裝插件轉換,接着我便查了一些資料,而後在這裏記錄下css
由於rem單位是相對於根節點的字體大小的,因此經過設置根節點的字體大小能夠動態的改變rem的大小, html的font-size===1rem,網上有不少關於rem的介紹,這裏就不記錄了html
# 基準大小
const baseSize = 32
# 設置 rem 函數
function setRem () {
# 當前頁面寬度相對於 750 寬的縮放比例,可根據本身須要修改。
const scale = document.documentElement.clientWidth / 750
# 設置頁面根節點字體大小
document.documentElement.style.fontSize = (baseSize * Math.min(scale, 2)) + 'px'
}
# 初始化
setRem()
# 改變窗口大小時從新設置 rem
window.onresize = function () {
setRem()
}
複製代碼
# main.js
import './utils/rem'
複製代碼
引入文件後可查看下html是否添加了font-size屬性或者font-size被動態的改變了,以此來肯定是否引入成功, 其實到這裏基本上完成了rem佈局了, h5會動態的去自適應,不過這樣子在實際開發中仍是要去計算px等於多少rem,接下來咱們使用 postcss-pxtorem 自動轉換px爲對應的rem值前端
先安裝依賴包 postcss-pxtoremvue
npm install postcss-pxtorem --save-dev
複製代碼
接下來配置 postcss-pxtoremvue-cli
# vue.config.js
module.exports = {
lintOnSave: true,
css: {
loaderOptions: {
postcss: {
plugins: [
require('postcss-pxtorem')({
rootValue : 16, // 換算的基數
selectorBlackList : [], // 忽略轉換正則匹配項
propList : ['*'],
}),
]
}
}
}
}
複製代碼
通過上面一通噼裏啪啦的搗鼓後, 沒出什麼報錯的話,即可用 px 做爲單位開發npm
例如設計給出的設計圖是 750 * 1136,那麼能夠直接在頁面中寫bash
body {
width: 750px;
height: 1136px;
}
# 將被轉換爲
body {
widht: 23.4375rem;
height: 35.5rem;
}
複製代碼