Vant+postcss-pxtorem 實(shí)現(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é)點(diǎn)字體大小
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 實(shí)現(xiàn)瀏覽器適配就完成了。
即可直接在樣式中暢快的使用px且自動轉(zhuǎn)換成rem。
等等先別走!?。】凸?。
以為到這里就結(jié)束了嗎?NO,往下看還有一份不基于postcss-pxtorem 來實(shí)現(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 實(shí)現(xiàn)瀏覽器適配的文章就介紹到這了,更多相關(guān)Vant+postcss-pxtorem 適配內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
JavaScript函數(shù)防抖與函數(shù)節(jié)流的定義及使用詳解
這篇文章主要為大家詳細(xì)介紹一下JavaScript中函數(shù)防抖與函數(shù)節(jié)流的定義及使用,文中的示例代碼講解詳細(xì),對我們學(xué)習(xí)JS有一定幫助,需要的可以參考一下2022-08-08
js實(shí)現(xiàn)的仿新浪微博完美的時間組件升級版
本博客沒有華麗的布局,只求樸實(shí)的js的代碼,只為js代碼愛好者提供,一周大概會出1-2篇js前沿代碼的文章.只是代碼,不說技術(shù)2011-12-12
Canvas 制作動態(tài)進(jìn)度加載水球詳解及實(shí)例代碼
這篇文章主要介紹了Canvas 制作動態(tài)進(jìn)度加載水球詳解及實(shí)例代碼的相關(guān)資料,這里附有實(shí)例代碼及實(shí)現(xiàn)效果圖,需要的朋友可以參考下2016-12-12
Three.js基礎(chǔ)學(xué)習(xí)之場景對象
這篇文章主要給大家介紹了Three.js基礎(chǔ)學(xué)習(xí)之場景對象的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家學(xué)習(xí)或者使用three.js具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起看看吧。2017-09-09
JavaScript深度復(fù)制(deep clone)的實(shí)現(xiàn)方法
本文給大家介紹JavaScript深度復(fù)制(deep clone)的實(shí)現(xiàn)方法,涉及到j(luò)s深度復(fù)制相關(guān)知識,本文介紹的非常詳細(xì),特此分享腳本之家平臺供大家參考2016-02-02

