vant UIとrem適応問題
5879 ワード
vue-cli4.x vant-ui, rem , vant px . , html font-size
一.プラグインを追加します.npm i postcss-plugin-px 2 rem--save追加後は、vue.co nfig.jsファイルにプラグインの設定を追加します.ブログリンクを参照してください.https://www.cnblogs.com/taohuaya/p/10274993.htm
標準設定でOKです.minPixelValuenは3 px以上で変換されます.ピクセルの値が小さすぎて、変換する必要がない場合があります.
css: {
loaderOptions: {
postcss: {
plugins: [
require('postcss-plugin-px2rem')({
// , 100 , 1rem 50px, px px 。
// rootValue: 37.5,
// unitPrecision: 5, // REM 。
// propWhiteList: [], // , 。
// propBlackList: [], //
// false, (reg) , /(node_module)/ 。 UI px rem,
// exclude: /(node_module)/,
// selectorBlackList: [], // px
// ignoreIdentifier: false, //(boolean/string) , ignoreidentifier ,replace true。
// replace: true, // ( ) REM , 。
// mediaQuery: false, //( ) px。
minPixelValue: 3 // (3px rem)。 0
}),
]
}
}
},
このプラグインは、プロジェクトのcssファイルのpx単位をrem単位に変換します.変換アルゴリズムは、px単位の値をroot Value(デフォルト値100)で割ったものです.例えば、あるcssファイルのfont-size:14 pxで変換した後、font-size:0.14 remとなります.自動変換ツールをインストールしないなら、手動で図面のピクセルをremに計算してcssに書くのが面倒くさいです.
二.htmlルート要素のfont-size値rem単位を変更するには、htmlのfont-size値の大きさを参照して、適応効果を達成するためには、スクリーン幅によってこの値を調整する必要があります.スクリプトは以下の通りです.
// designSize: ( @1x , 750px,2 , 375),rootValue: , 100
function sethtml(designSize: number, rootValue?: number) {
let rootV = 100;
if (rootValue) {
rootV = rootValue;
}
//
const winWidth = window.document.documentElement.clientWidth;
// 1.5 ,
if (winWidth > 1.5 * designSize) { return; }
// window.console.log(winWidth);
const htmlFontSize = winWidth * rootV / designSize;
window.document.documentElement.style.fontSize = htmlFontSize + 'px';
}
この方法をmain.jsで呼び出すと、画面サイズに応じてhtml要素のサイズを設定します.sethtml(375)vant-uiの設計図は750の二倍図であるので、呼び出し時には375.