欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

vue-cli3使用postcss-plugin-px2rem方式

 更新時間:2024年07月25日 09:10:04   作者:可樂少點冰  
這篇文章主要介紹了vue-cli3使用postcss-plugin-px2rem方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教

vue-cli3使用postcss-plugin-px2rem

postcss-plugin-px2rem是可以將px自動轉(zhuǎn)化為rem的postcss插件

1.安裝

npm i postcss-plugin-px2rem --save -dev

2.package.json中添加配置(組件中px轉(zhuǎn)rem才生效)在package.json、package.json、package.json中設(shè)置很重要

"postcss-plugin-px2rem": {
        "rootValue": 37.5,
        "unitPrecision": 5,
        "propBlackList": [
          "font-size"
        ],
        "mediaQuery": false,
        "minPixelValue": 3
      }

3.忽略ui框架中px轉(zhuǎn)rem在vue.config.js(json中不能使用正則)中配置

css: {
   loaderOptions: {
     postcss: {
       plugins: [
         require('postcss-plugin-px2rem')({
           // rootValue: 100, //換算基數(shù), 默認(rèn)100  ,這樣的話把根標(biāo)簽的字體規(guī)定為1rem為50px,這樣就可以從設(shè)計稿上量出多少個px直接在代碼中寫多上px了。
           //propWhiteList: [],  //默認(rèn)值是一個空數(shù)組,這意味著禁用白名單并啟用所有屬性。
           exclude: /node_module/,  //默認(rèn)false,可以(reg)利用正則表達(dá)式排除某些文件夾的方法,例如/(node_module)/ 。如果想把前端UI框架內(nèi)的px也轉(zhuǎn)換成rem,請把此屬性設(shè)為默認(rèn)值
           // selectorBlackList: [], //要忽略并保留為px的選擇器
           // ignoreIdentifier: false,  //(boolean/string)忽略單個屬性的方法,啟用ignoreidentifier后,replace將自動設(shè)置為true。
           // replace: true, // (布爾值)替換包含REM的規(guī)則,而不是添加回退。
         }),
       ]
     }
   }
 }

px轉(zhuǎn)rem插件postcss-plugin-px2rem使用方法(瀏覽器縮放頁面自適應(yīng))

常見屏幕自適應(yīng)的布局

  • 百分比布局
  • rem布局
  • css媒體查詢
  • 在前端框架設(shè)計初期,應(yīng)優(yōu)先選擇好頁面布局方式

postcss-plugin-px2rem插件的使用

官網(wǎng)地址:https://www.npmjs.com/package/postcss-plugin-px2rem

1.下載插件

npm i postcss-plugin-px2rem --save

2.在vite.config.js

	import px2rem from 'postcss-plugin-px2rem';
	// 插件的參數(shù)設(shè)置
	const px2remOptions = {
	  rootValue: 16,  //換算基數(shù), 默認(rèn)100 ,根元素字體的大小
	  unitPrecision: 5, //允許REM單位增長到的十進(jìn)制數(shù)字,其實就是精度控制
	  // propWhiteList: [], // 白名單
	  // propBlackList: [], // 黑名單
	  exclude:false,  //默認(rèn)false,排除某些文件夾的方法,例如/(node_module)/ 。
	  // selectorBlackList: [], //要忽略并保留為 px 的選擇器。可以是字符串或者正則表達(dá)式
	  // ignoreIdentifier: false, //(boolean/string)一種忽略單個屬性的方法,當(dāng)啟用 ignoreIdentifier 時,replace將自動設(shè)置為true。
	  // replace: true, // (布爾值)替換包含 rems 的規(guī)則,而不是添加后備規(guī)則。
	  mediaQuery: false, //(布爾值)允許在媒體查詢中轉(zhuǎn)換px
	  minPixelValue: 0  // 設(shè)置要替換的最小像素值。 默認(rèn) 0
	}
	
	export default defineConfig({
	  plugins:[...],
	  css:{
		postcss:{
		  plugins:[px2rem(px2remOptions)]
		}
	  }
	})

3.在util文件夾中創(chuàng)建pxToRem.js文件

注意:

  • 我看其他文章上有做了性能優(yōu)化,加入了縮放監(jiān)聽防抖。
  • 加了防抖,縮放時,會出現(xiàn)那種類似于卡頓的效果,但是性能上確實有優(yōu)化。
  • (算是犧牲視覺效果增加性能,加不加防抖不妨都試試,看產(chǎn)品需求,因人而異)
	// pxToRem.js
	import _ from 'lodash'
	// 以1920px 底圖為準(zhǔn)開發(fā)頁面,動態(tài)修改根元素字體的大小
	export const setDomFontSize = () => {
	    let width = document.documentElement.clientWidth || document.body.clientWidth;
	    let fontsize = (width <= 200 ? 1200 : width) / 100 + 'px';
	    (document.getElementsByTagName('html')[0].style)['font-size'] = fontsize;
	}
	
	// let setDomFontSizeDebounce = _.debounce(setDomFontSize, 400)
	// window.addEventListener('resize', setDomFontSizeDebounce); // 瀏覽器加入收縮監(jiān)聽防抖,重新計算rem配置
	window.addEventListener('resize', setDomFontSize); 
	// 這里有個知識點: window.onresize,window.addEventLister兩種方式的區(qū)別
	// 最主要的區(qū)別:onresize本身就是一個回調(diào),多次執(zhí)行會被覆蓋,通過addEventLister監(jiān)聽多次執(zhí)行就不會被覆蓋,運用于循環(huán)生成多個Echarts時,改變窗口大小,Echarts圖表自適應(yīng)問題

4.在main.js中進(jìn)行配置

	// main.js
	import { setDomFontSize } from './utils/pxToRem'
	// 執(zhí)行方法,相當(dāng)于全局掛載了
	setDomFontSize()

總結(jié)

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • Vue中nprogress頁面加載進(jìn)度條的方法實現(xiàn)

    Vue中nprogress頁面加載進(jìn)度條的方法實現(xiàn)

    這篇文章主要介紹了Vue中nprogress頁面加載進(jìn)度條的方法實現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-11-11
  • vue3使用別名報錯問題的解決辦法(vetur插件報錯問題)

    vue3使用別名報錯問題的解決辦法(vetur插件報錯問題)

    最近在寫一個購物網(wǎng)站使用vue,使用中遇到了問題,下面這篇文章主要給大家介紹了關(guān)于vue3使用別名報錯問題的解決辦法,文中通過實例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2022-07-07
  • vue獲取或者改變vuex中的值方式

    vue獲取或者改變vuex中的值方式

    這篇文章主要介紹了vue獲取或者改變vuex中的值方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-09-09
  • vue長按事件和點擊事件沖突的解決

    vue長按事件和點擊事件沖突的解決

    這篇文章主要介紹了vue長按事件和點擊事件沖突的解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-10-10
  • Vue.js和Vue.runtime.js區(qū)別淺析

    Vue.js和Vue.runtime.js區(qū)別淺析

    這篇文章主要介紹了Vue.js和Vue.runtime.js區(qū)別淺析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-07-07
  • vue中echarts點擊事件點擊一次多次觸發(fā)問題

    vue中echarts點擊事件點擊一次多次觸發(fā)問題

    這篇文章主要介紹了vue中echarts點擊事件點擊一次多次觸發(fā)問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-06-06
  • 詳解vite+ts快速搭建vue3項目以及介紹相關(guān)特性

    詳解vite+ts快速搭建vue3項目以及介紹相關(guān)特性

    這篇文章主要介紹了vite+ts快速搭建vue3項目以及介紹相關(guān)特性,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-02-02
  • v-if 導(dǎo)致 elementui 表單校驗失效問題解決方案

    v-if 導(dǎo)致 elementui 表單校驗失效問題解決方案

    在使用 elementui 表單的過程中,某些表單項需要通過 v-if 來判斷是否展示,但是這些表單項出現(xiàn)了檢驗失效的問題,今天小編給大家介紹v-if 導(dǎo)致 elementui 表單校驗失效問題解決方案,感興趣的朋友一起看看吧
    2024-01-01
  • Vue3中的動態(tài)組件詳解

    Vue3中的動態(tài)組件詳解

    本文介紹了Vue3中的動態(tài)組件,通過`<component :is="動態(tài)組件名或組件對象"></component>`來實現(xiàn)根據(jù)條件動態(tài)渲染不同的組件,此外,還提到了使用`markRaw`和`shallowRef`來優(yōu)化性能,避免不必要的響應(yīng)式劫持
    2025-02-02
  • Vue實現(xiàn)網(wǎng)頁轉(zhuǎn)PDF方法流程詳解

    Vue實現(xiàn)網(wǎng)頁轉(zhuǎn)PDF方法流程詳解

    在日常的工作中,有時候會碰到需要將某個網(wǎng)址網(wǎng)頁保存成為pdf的情況,這篇文章主要介紹了用Vue實現(xiàn)網(wǎng)頁轉(zhuǎn)PDF的方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-08-08

最新評論