如何實(shí)現(xiàn)vue-cli移動(dòng)端適配問(wèn)題 引入lib-flexible

第一部分:項(xiàng)目中引入lib-flexible

一、項(xiàng)目中安裝lib-flexible

npm install lib-flexible --save

二鲜侥、在項(xiàng)目的入口main.js文件中引入lib-flexible

import 'lib-flexible'

第二部分:使用postcss-px2rem自動(dòng)將css中的px轉(zhuǎn)換成rem

一、安裝postcss-px2rem?

npm install postcss-px2rem --save-dev


二、配置px2rem-loader

在vue-cli生成的文件中,找到以下文件 build/utils.js,如下圖添加配置




初始的適配方案就完成了舔亭,然后可以直接在css或.vue文件中寫(xiě)已px為單位的樣式了,到瀏覽器會(huì)自動(dòng)轉(zhuǎn)為rem喇澡。

因?yàn)榍捌陧?xiàng)目安排不是太趕,ui給的設(shè)計(jì)圖也相對(duì)簡(jiǎn)單善炫,所以自己寫(xiě)了按鈕組件之類的撩幽,適配還挺好,覺(jué)得自己棒棒噠~

直到ui的后續(xù)設(shè)計(jì)圖出現(xiàn)時(shí)間插件箩艺,然后就引入了vant的組件庫(kù)窜醉。

放了一個(gè)簡(jiǎn)單的cell組件,npm run serve項(xiàng)目跑起來(lái)艺谆,發(fā)現(xiàn)組件中的樣式都變小了榨惰,F(xiàn)12看了一下果然組件的樣式也都被轉(zhuǎn)換成了rem。

px2rem 用法

安裝px2rem后静汤,再使用px上有些不同琅催,大家可以參考px2rem官方介紹居凶,下面簡(jiǎn)單介紹一下。

直接寫(xiě)px藤抡,編譯后會(huì)直接轉(zhuǎn)化成rem ---- 除開(kāi)下面兩種情況侠碧,其他長(zhǎng)度用這個(gè)

在px后面添加/*no*/,不會(huì)轉(zhuǎn)化px缠黍,會(huì)原樣輸出弄兜。 --- 一般border需用這個(gè)

在px后面添加/*px*/,會(huì)根據(jù)dpr的不同,生成三套代碼瓷式。---- 一般字體需用這個(gè)

示例代碼

編譯前(自己寫(xiě)的代碼)

.selector {

?width: 150px;

?height: 64px; /*px*/

?font-size: 28px; /*px*/

?border: 1px solid#ddd; /*no*/

}

編譯后(打包后的代碼)

.selector {

?width: 2rem;

?border: 1px solid#ddd;

}

[data-dpr="1"] .selector {

?height: 32px;

?font-size: 14px;

}

[data-dpr="2"] .selector {

?height: 64px;

?font-size: 28px;

}

[data-dpr="3"] .selector {

?height: 96px;

?font-size: 42px;

}

重啟項(xiàng)目替饿,就可以愉快的用設(shè)計(jì)稿上的px了。

注意:坑

不能在index.html的頭部加 name 為 viewport 的 meta 標(biāo)簽贸典,flexible會(huì)自動(dòng)為我們添加视卢!

問(wèn)題

變小的主要原因是第三庫(kù) css一依據(jù)data-dpr="1"時(shí)寫(xiě)的尺寸

這時(shí)我們使用的flexible引入時(shí) data-dpr不是一個(gè)寫(xiě)死了的,是一個(gè)動(dòng)態(tài)的廊驼;就導(dǎo)致這個(gè)問(wèn)題

然后就各種查解決方案据过,網(wǎng)絡(luò)上給的解決方案一個(gè)是改寫(xiě)第三方庫(kù)的樣式,還有一個(gè)就是讓flexible不編譯第三方庫(kù)的文件(忽略u(píng)i組件庫(kù)的樣式文件)蔬充。

解決方案一:

將第三方組件的css文件復(fù)制出來(lái)第三方庫(kù)的css代碼px統(tǒng)一擴(kuò)大2倍蝶俱,或者用全局替換將px替換為px/*no*/班利。我覺(jué)的這個(gè)方案不太好沒(méi)有采用饥漫,具體操作可以參考以下兩篇文章:https://segmentfault.com/a/1190000014575890 和 https://blog.csdn.net/weixin_42464312/article/details/82769805。

解決方案二:

使用postcss-px2rem-exclude罗标,網(wǎng)上好多說(shuō)用這個(gè)方法不起作用庸队,經(jīng)過(guò)一個(gè)下午的折騰才發(fā)現(xiàn)是使用方法不對(duì),我的錯(cuò)誤方法就不跟你們說(shuō)了闯割,直接來(lái)正確的彻消。

首先,需要卸載項(xiàng)目中的postcss-px2rem宙拉。

npm? uninstall postcss-px2rem --save-dev

其次宾尚,安裝postcss-px2rem-exclude

npm? install postcss-px2rem-exclude --save

最后是配置exclude選項(xiàng),需要注意的是這個(gè)配置在vue.config.js中式不起作用的谢澈,如圖煌贴。

正確的配置位置是項(xiàng)目根目錄下的postcss.config.js文件,如果你的項(xiàng)目沒(méi)有生成這個(gè)獨(dú)立文件锥忿,就需要在你的package.js里設(shè)置牛郑。

postcss.config.jsmodule.exports= {

? plugins: {

? ? autoprefixer: {},

? ? "postcss-px2rem-exclude": {

? ? ? remUnit: 75,

? ? ? exclude: /node_modules|folder_name/i

? ? }

? }

};

package.json"postcss": {

? ? "plugins": {

? ? ? "autoprefixer": {},

? ? ? "postcss-px2rem-exclude":{

? ? ? ? ? "remUnit":75,

? ? ? ? ? "exclude":"/node_modules|floder_name/i"? ? ? }

? ? }

? },

ok,完成敬鬓。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末淹朋,一起剝皮案震驚了整個(gè)濱河市笙各,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌础芍,老刑警劉巖杈抢,帶你破解...
    沈念sama閱讀 221,888評(píng)論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異仑性,居然都是意外死亡春感,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,677評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門(mén)虏缸,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)鲫懒,“玉大人,你說(shuō)我怎么就攤上這事刽辙】遥” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 168,386評(píng)論 0 360
  • 文/不壞的土叔 我叫張陵宰缤,是天一觀的道長(zhǎng)颂翼。 經(jīng)常有香客問(wèn)我,道長(zhǎng)慨灭,這世上最難降的妖魔是什么朦乏? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 59,726評(píng)論 1 297
  • 正文 為了忘掉前任,我火速辦了婚禮氧骤,結(jié)果婚禮上呻疹,老公的妹妹穿的比我還像新娘。我一直安慰自己筹陵,他們只是感情好刽锤,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,729評(píng)論 6 397
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著朦佩,像睡著了一般并思。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上语稠,一...
    開(kāi)封第一講書(shū)人閱讀 52,337評(píng)論 1 310
  • 那天宋彼,我揣著相機(jī)與錄音,去河邊找鬼仙畦。 笑死输涕,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的议泵。 我是一名探鬼主播占贫,決...
    沈念sama閱讀 40,902評(píng)論 3 421
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼先口!你這毒婦竟也來(lái)了型奥?” 一聲冷哼從身側(cè)響起瞳收,我...
    開(kāi)封第一講書(shū)人閱讀 39,807評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎厢汹,沒(méi)想到半個(gè)月后螟深,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,349評(píng)論 1 318
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡烫葬,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,439評(píng)論 3 340
  • 正文 我和宋清朗相戀三年界弧,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片搭综。...
    茶點(diǎn)故事閱讀 40,567評(píng)論 1 352
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡垢箕,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出兑巾,到底是詐尸還是另有隱情条获,我是刑警寧澤,帶...
    沈念sama閱讀 36,242評(píng)論 5 350
  • 正文 年R本政府宣布蒋歌,位于F島的核電站帅掘,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏堂油。R本人自食惡果不足惜修档,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,933評(píng)論 3 334
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望府框。 院中可真熱鬧吱窝,春花似錦、人聲如沸寓免。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 32,420評(píng)論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)袜香。三九已至,卻和暖如春鲫惶,著一層夾襖步出監(jiān)牢的瞬間蜈首,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,531評(píng)論 1 272
  • 我被黑心中介騙來(lái)泰國(guó)打工欠母, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留欢策,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,995評(píng)論 3 377
  • 正文 我出身青樓赏淌,卻偏偏與公主長(zhǎng)得像踩寇,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子六水,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,585評(píng)論 2 359

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