postcss-pxtorem設置不轉換UI框架的CSS單位問題
postcss-pxtorem設置不轉換UI框架的CSS單位
在移動端項目中使用postcss-pxtorem做適配,同時也使用到了第三方UI庫(vant)。
這時就出現(xiàn)了一個問題。
第三方UI庫使用的是px,而postcss將頁面中的px 全部轉化成了rem.導致樣式縮小。
查詢postcss配置文檔后發(fā)現(xiàn) 其提供了selectorBlackList 屬性來忽略掉某些選擇器,vant-UI組件庫的CSS都是以.van開頭的 因此我只需要將 .van 忽略掉就好
具體配置如下:
module.exports = { plugins: { // 這個工具可以實現(xiàn)自動添加CSS3前綴 "autoprefixer": { overrideBrowserslist: ['last 5 version', '>1%', 'ie >=8'] }, //如果你使用rem來實現(xiàn)移動端多設備適配,這個工具可以把px轉換為rem "postcss-pxtorem": { rootValue: 100, // 指定轉換倍率,我現(xiàn)在設置這個表示1rem=100px; minPixelValue: 1, // 需要轉換的最小值,一般1px像素不轉換,以上才轉換 unitPrecision: 6, // 轉換成rem單位的小數(shù)點后的保留位數(shù) selectorBlackList: ['.van'], // 匹配不被轉換為rem的選擇器 propList: ['*'], // 屬性列表,表示你要把哪些css屬性的px轉換成rem,這個*表示所有 replace: true, // 替換包含rem的規(guī)則,而不是添加回退 mediaQuery: false // 允許在媒體查詢中轉換px } } }
postcss-pxtorem px不轉換為rem的做法
有些場景是不要px轉為rem的時候,如果不想設置vscode的vetur的設置,當然也不建議設置,除非團隊每個人都設置,要不然就會被保存格式化,PX都會轉為px
所以采用如下做法:
postCssPxToRem({ // 自適應,px>rem轉換 rootValue: 192, // 根據(jù)設計圖尺寸寫,設計圖是 1920,就寫 192 propList: ['*'], // 需要轉換的屬性,這里選擇全部都進行轉換 selectorBlackList: ['-nopx'], // 過濾掉-nopx結尾的class,不進行rem轉換 }),
實際代碼設置如下:
<div id="lightEchart-nopx"></div>
效果如圖:
總結
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關文章
基于Vue 和 iView分片上傳功能實現(xiàn)(上傳組件)
本文介紹了基于Vue和iView的文件分片上傳技術,通過將文件拆分成多個小塊并逐塊上傳,解決了大文件上傳時的諸多問題,如上傳速度慢、超時和網(wǎng)絡中斷等,它還展示了如何實現(xiàn)分片上傳的進度顯示、錯誤處理和斷點續(xù)傳等功能,感興趣的朋友跟隨小編一起看看吧2025-01-01vue使用WEB自帶TTS實現(xiàn)語音文字互轉的操作方法
這篇文章主要介紹了vue使用WEB自帶TTS實現(xiàn)語音文字互轉,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友參考下吧2024-01-01