最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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 的選擇器??梢允亲址蛘哒齽t表達(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í)行就不會被覆蓋,運(yùn)用于循環(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)文章

  • axios對請求各種異常情況處理的封裝方法

    axios對請求各種異常情況處理的封裝方法

    今天小編就為大家分享一篇axios對請求各種異常情況處理的封裝方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-09-09
  • vue項目中添加單元測試的方法

    vue項目中添加單元測試的方法

    這篇文章主要介紹了vue項目中添加單元測試的方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-07-07
  • Vue組件為什么data必須是一個函數(shù)

    Vue組件為什么data必須是一個函數(shù)

    這篇文章主要介紹了Vue組件為什么data必須是一個函數(shù),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-06-06
  • Vue實現(xiàn)大屏頁面的屏幕自適應(yīng)

    Vue實現(xiàn)大屏頁面的屏幕自適應(yīng)

    這篇文章主要為大家詳細(xì)介紹了Vue實現(xiàn)大屏頁面的屏幕自適應(yīng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-10-10
  • 從零擼一個pc端vue的ui組件庫( 計數(shù)器組件 )

    從零擼一個pc端vue的ui組件庫( 計數(shù)器組件 )

    這篇文章主要介紹了pc端vue的ui組件庫的實現(xiàn)方法,非常不錯,具有一定的參考借鑒價值,需要的朋友可以參考下
    2019-08-08
  • vue中vee validate表單校驗的幾種基本使用

    vue中vee validate表單校驗的幾種基本使用

    這篇文章主要介紹了vee-validate表單校驗的基本使用,需要的朋友可以參考下
    2018-06-06
  • 利用vue.js插入dom節(jié)點的方法

    利用vue.js插入dom節(jié)點的方法

    這篇文章主要介紹了利用vue.js插入dom節(jié)點的相關(guān)資料,文中介紹的非常,對大家具有一定的參考價值,需要的朋友們下面來一起看看吧。
    2017-03-03
  • vue h5移動端禁止縮放代碼

    vue h5移動端禁止縮放代碼

    今天小編就為大家分享一篇vue h5移動端禁止縮放代碼,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-10-10
  • vue+SSM實現(xiàn)驗證碼功能

    vue+SSM實現(xiàn)驗證碼功能

    這篇文章主要介紹了vue+SSM實現(xiàn)驗證碼功能,本文通過實例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價值,需要的朋友可以參考下
    2018-12-12
  • Vue動態(tài)表單的應(yīng)用詳解

    Vue動態(tài)表單的應(yīng)用詳解

    這篇文章主要為大家詳細(xì)介紹了Vue動態(tài)表單的應(yīng)用,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-10-10

最新評論

中牟县| 渝北区| 保山市| 米易县| 鄂尔多斯市| 呼图壁县| 霸州市| 阳泉市| 泸溪县| 兰西县| 沅陵县| 枣强县| 郓城县| 徐闻县| 体育| 阿克苏市| 湖州市| 永州市| 大安市| 固原市| 萍乡市| 如皋市| 肃宁县| 全州县| 安福县| 巴楚县| 北安市| 襄汾县| 北京市| 寻乌县| 安泽县| 峨山| 明溪县| 太和县| 河北区| 永昌县| 慈溪市| 兴和县| 五峰| 星座| 健康|