Vant+postcss-pxtorem 實現(xiàn)瀏覽器適配功能
Rem 布局適配
Vant 中的樣式默認(rèn)使用 px 作為單位,如果需要使用 rem 單位,推薦使用以下兩個工具:
postcss-pxtorem 是一款 postcss 插件,用于將單位轉(zhuǎn)化為 rem
lib-flexible 用于設(shè)置 rem 基準(zhǔn)值
看到最后有驚喜!
一、npm安裝
npm install postcss-pxtorem --save
二、新建.postcssrc.js做如下修改
注:
1、以下注釋代碼開啟后運(yùn)行腳本會出現(xiàn)報錯的提示,雖不知道有什么用,注釋就好啦。
module.exports = {
"plugins": {
//"postcss-import": {},
//"postcss-url": {},
"autoprefixer": {
browsers: ['Android >= 4.0', 'iOS >= 7']
},
"postcss-pxtorem": {
"rootValue": 32,
"propList": ["*"]
}
}
}
三、新建rem.js
const baseSize = 32
// 設(shè)置 rem 函數(shù)
function setRem () {
// 當(dāng)前頁面寬度相對于 750 寬的縮放比例,可根據(jù)自己需要修改。
const scale = document.documentElement.clientWidth / 750
// 設(shè)置頁面根節(jié)點字體大小
document.documentElement.style.fontSize = (baseSize * Math.min(scale, 2)) + 'px'
}
// 初始化
setRem()
// 改變窗口大小時重新設(shè)置 rem
window.onresize = function () {
setRem()
}
四、在main.js中引入rem.js
import "./rem.js"
至此,Vant+postcss-pxtorem 實現(xiàn)瀏覽器適配就完成了。
即可直接在樣式中暢快的使用px且自動轉(zhuǎn)換成rem。
等等先別走!?。】凸?。
以為到這里就結(jié)束了嗎?NO,往下看還有一份不基于postcss-pxtorem 來實現(xiàn)的rem適配哦。
話不多說直接上代碼。
五、新建rem.js并再main.js中引入
(function (doc, win) {
var docEl = doc.documentElement
var resizeEvt = 'orientationchange' in window ? 'orientationchange' : 'resize'
var recalc = function () {
var clientWidth = docEl.clientWidth
if (!clientWidth) return
if (parseInt(20 * (clientWidth / 320)) > 35) {
docEl.style.fontSize = 35 + 'px'
} else {
docEl.style.fontSize = 20 * (clientWidth / 320) + 'px'
}
}
if (!doc.addEventListener) return
win.addEventListener(resizeEvt, recalc, false)
doc.addEventListener('DOMContentLoaded', recalc, false)
})(document, window)
import "./rem.js"
六、添加樣式全局變量并使用
// 當(dāng)前頁面寬度相對于 750 寬的縮放比例,可根據(jù)自己需要修改。
$rem: (640/750)/40;
body{
width: $rem * 24rem;
}
到此這篇關(guān)于Vant+postcss-pxtorem 實現(xiàn)瀏覽器適配的文章就介紹到這了,更多相關(guān)Vant+postcss-pxtorem 適配內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
三種動態(tài)加載js的jquery實例代碼另附去除js方法
這篇文章主要介紹了三種動態(tài)加載js的jquery實例代碼另附去除js方法,需要的朋友可以參考下2014-04-04
如何將一個String和多個String值進(jìn)行比較思路分析
開發(fā)中我們經(jīng)常需要將一個String和多個String值進(jìn)行比較。直覺反應(yīng)是使用||符號連接多個===完成,感興趣的朋友可以了解下哈2013-04-04
JS事件循環(huán)機(jī)制event loop宏任務(wù)微任務(wù)原理解析
這篇文章主要介紹了JS事件循環(huán)機(jī)制event loop宏任務(wù)微任務(wù)原理解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2020-08-08
微信小程序中data-key屬性之?dāng)?shù)據(jù)傳輸(經(jīng)驗總結(jié))
這篇文章主要介紹了微信小程序中data-key屬性:數(shù)據(jù)傳輸,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-08-08
JavaScript調(diào)用客戶端的可執(zhí)行文件(示例代碼)
這篇文章主要是對JavaScript調(diào)用客戶端的可執(zhí)行文件(示例代碼)進(jìn)行了介紹,需要的朋友可以過來參考下,希望對大家有所幫助2013-11-11
詳解JavaScript中的Object.is()與"==="運(yùn)算符總結(jié)
這篇文章主要介紹了詳解JavaScript中的Object.is()與"==="運(yùn)算符總結(jié),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-06-06
TypeScript創(chuàng)建一個簡單Web應(yīng)用
這篇文章主要為大家介紹了TypeScript創(chuàng)建一個簡單Web應(yīng)用,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-05-05

