移動端配置Rem 布局適配

一料仗、原生項(xiàng)目
var designWidth = 750;  //設(shè)計(jì)稿的寬度
//初始化
resize();
//兼容不同機(jī)型
const event = 'onorientationchange' in window ? 'onorientationchange' : 'resize';
window.addEventListener(event, resize, false);
function resize(){
    //獲取瀏覽器的寬度
    const clientWidth =document.documentElement.clientWidth;
    const fontSize = clientWidth / designWidth * 100;
    document.documentElement.style.fontSize = fontSize+"px";
}
designWidth 可以自定義羡忘,使用的時候和UI稿的尺寸保持一致官边,把對應(yīng)的大小除以100就可以轉(zhuǎn)換為相應(yīng)的rem為單位的值凤巨。
例如:24px=0.24rem
二针炉、vue3+vite項(xiàng)目
  • postcss-pxtorem 是一款 PostCSS 插件督勺,用于將 px 單位轉(zhuǎn)化為 rem 單位
  • lib-flexible 用于設(shè)置 rem 基準(zhǔn)值
1渠羞、安裝
npm install amfe-flexible --save
npm install postcss-pxtorem --save-dev
2、在main.js入口文件引入
import 'amfe-flexible'
3智哀、在vite中
import postCssPxToRem from 'postcss-pxtorem';
 plugins.push(
    postCssPxToRem({
      rootValue: 37.5,// (Number | Function) 表示根元素字體大小或根據(jù)[`input`](https://api.postcss.org/Input.html)參數(shù)返回根元素字體大小
      unitPrecision: 5, // 允許REM單位增長到的十進(jìn)制數(shù)字,小數(shù)點(diǎn)后保留的位數(shù)次询。
      propList: ['*'],
      exclude: /(node_module)/, // 默認(rèn)false,可以(reg)利用正則表達(dá)式排除某些文件夾的方法瓷叫,例如/(node_module)/ 屯吊。如果想把前端UI框架內(nèi)的px也轉(zhuǎn)換成rem,請把此屬性設(shè)為默認(rèn)值
      selectorBlackList: ['vant-'], // 要忽略并保留為px的選擇器赞辩,我使用的UI框架為vant 所以這里會配置vant-
      mediaQuery: false, // (布爾值)允許在媒體查詢中轉(zhuǎn)換px雌芽。
      minPixelValue: 1, // 設(shè)置要替換的最小像素值
    })
  );

如果設(shè)計(jì)稿的尺寸不是 375,而是 750 或其他大小辨嗽,可以將 rootValue 配置調(diào)整為: 設(shè)計(jì)稿大小/10

配置好以后直接在在樣式中使用px單位世落,會自動被轉(zhuǎn)化為單位為rem

具體配置說明參考下圖:

image.png

4、遇到的問題

①、配置了 selectorBlackList: ['vant-'] 以后屉佳,UI框架vant中的組件的展示還是以px為單位谷朝,自適應(yīng)布局會有問題。如果自定義去更改樣式的時候武花, 需要轉(zhuǎn)化為rem單位圆凰。
②、為什么不干脆把vant中的樣式也轉(zhuǎn)化為rem為單位的布局那体箕,會有很大的兼容問題专钉,尤其是在12及以上的ios機(jī)型上面。
③累铅、在入口的html文件中添加了骨架屏跃须,樣式

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市娃兽,隨后出現(xiàn)的幾起案子菇民,更是在濱河造成了極大的恐慌,老刑警劉巖投储,帶你破解...
    沈念sama閱讀 212,884評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件第练,死亡現(xiàn)場離奇詭異,居然都是意外死亡玛荞,警方通過查閱死者的電腦和手機(jī)娇掏,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,755評論 3 385
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來冲泥,“玉大人驹碍,你說我怎么就攤上這事》不校” “怎么了志秃?”我有些...
    開封第一講書人閱讀 158,369評論 0 348
  • 文/不壞的土叔 我叫張陵,是天一觀的道長嚼酝。 經(jīng)常有香客問我浮还,道長,這世上最難降的妖魔是什么闽巩? 我笑而不...
    開封第一講書人閱讀 56,799評論 1 285
  • 正文 為了忘掉前任钧舌,我火速辦了婚禮,結(jié)果婚禮上涎跨,老公的妹妹穿的比我還像新娘洼冻。我一直安慰自己,他們只是感情好隅很,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,910評論 6 386
  • 文/花漫 我一把揭開白布撞牢。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪屋彪。 梳的紋絲不亂的頭發(fā)上所宰,一...
    開封第一講書人閱讀 50,096評論 1 291
  • 那天,我揣著相機(jī)與錄音畜挥,去河邊找鬼仔粥。 笑死,一個胖子當(dāng)著我的面吹牛蟹但,可吹牛的內(nèi)容都是我干的躯泰。 我是一名探鬼主播,決...
    沈念sama閱讀 39,159評論 3 411
  • 文/蒼蘭香墨 我猛地睜開眼矮湘,長吁一口氣:“原來是場噩夢啊……” “哼斟冕!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起缅阳,我...
    開封第一講書人閱讀 37,917評論 0 268
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎景描,沒想到半個月后十办,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,360評論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡超棺,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,673評論 2 327
  • 正文 我和宋清朗相戀三年向族,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片棠绘。...
    茶點(diǎn)故事閱讀 38,814評論 1 341
  • 序言:一個原本活蹦亂跳的男人離奇死亡件相,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出氧苍,到底是詐尸還是另有隱情夜矗,我是刑警寧澤,帶...
    沈念sama閱讀 34,509評論 4 334
  • 正文 年R本政府宣布让虐,位于F島的核電站紊撕,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏赡突。R本人自食惡果不足惜对扶,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 40,156評論 3 317
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望惭缰。 院中可真熱鬧浪南,春花似錦、人聲如沸漱受。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,882評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至喷众,卻和暖如春各谚,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背到千。 一陣腳步聲響...
    開封第一講書人閱讀 32,123評論 1 267
  • 我被黑心中介騙來泰國打工昌渤, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人憔四。 一個月前我還...
    沈念sama閱讀 46,641評論 2 362
  • 正文 我出身青樓膀息,卻偏偏與公主長得像,于是被迫代替她去往敵國和親了赵。 傳聞我的和親對象是個殘疾皇子潜支,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,728評論 2 351

推薦閱讀更多精彩內(nèi)容