Vue項(xiàng)目使用PostCSS做h5頁面的屏幕適配的配置步驟
1. 創(chuàng)建或選擇 Vue 項(xiàng)目
如果你還沒有 Vue 項(xiàng)目,可以使用 Vue CLI 創(chuàng)建一個(gè)新的項(xiàng)目:
npm install -g @vue/cli vue create my-vue-project cd my-vue-project
2. 安裝 PostCSS 及相關(guān)插件
安裝 postcss、postcss-loader 和之前提到的 postcss-pxtorem 插件:
npm install postcss postcss-loader postcss-pxtorem --save-dev
3. 配置 PostCSS
在項(xiàng)目根目錄下創(chuàng)建或修改 postcss.config.js 文件,示例配置如下:
module.exports = {
plugins: {
'postcss-pxtorem': {
rootValue: 37.5, // 根元素字體大小,根據(jù)設(shè)計(jì)稿調(diào)整,一般設(shè)置為設(shè)計(jì)稿寬度的1/10
propList: ['*'], // 需要轉(zhuǎn)換的屬性,* 表示所有屬性都轉(zhuǎn)換
selectorBlackList: ['.ignore-'], // 選擇器黑名單,匹配到的選擇器中的 px 不轉(zhuǎn)換
minPixelValue: 2 // 最小轉(zhuǎn)換的像素值,小于該值的 px 不轉(zhuǎn)換
}
}
};
不轉(zhuǎn)換微小尺寸
通常來說,minPixelValue 設(shè)置為 1 或 2 是比較常見的選擇。這樣做的目的是避免將一些微小的尺寸(如邊框?qū)挾?、陰影偏移量等)轉(zhuǎn)換為 rem 單位,因?yàn)檫@些微小尺寸如果轉(zhuǎn)換后可能會(huì)因?yàn)樾?shù)計(jì)算而導(dǎo)致顯示上的細(xì)微差異,甚至在某些設(shè)備上出現(xiàn)顯示異常。
4. 配置 Vue 項(xiàng)目中的 vue.config.js
在項(xiàng)目根目錄下創(chuàng)建或修改 vue.config.js 文件,添加 css 配置項(xiàng),以啟用 postcss-loader:
module.exports = {
css: {
loaderOptions: {
postcss: {
postcssOptions: {
plugins: [
require('postcss-pxtorem')({
// 這里的配置也可以直接寫在 postcss.config.js 里
// 如果你已經(jīng)在 postcss.config.js 配置好了,這里可以省略
})
]
}
}
}
}
};
5. 在 Vue 組件中編寫 CSS
在 Vue 組件的 <style> 標(biāo)簽中使用 px 單位編寫樣式,例如:
<template>
<div class="box">
This is a box.
</div>
</template>
<style scoped>
.box {
width: 375px;
height: 100px;
font-size: 16px;
background-color: lightblue;
}
</style>
6. 設(shè)置根元素字體大小
為了讓 rem 單位生效,需要在項(xiàng)目入口文件(通常是 src/main.js)中動(dòng)態(tài)設(shè)置根元素(<html>)的字體大小??梢蕴砑右韵麓a:
// src/main.js
new Vue({
render: h => h(App),
}).$mount('#app');
// 設(shè)置根元素字體大小
document.documentElement.style.fontSize = document.documentElement.clientWidth / 10 + 'px';
window.addEventListener('resize', () => {
document.documentElement.style.fontSize = document.documentElement.clientWidth / 10 + 'px';
});
上述代碼根據(jù)屏幕寬度動(dòng)態(tài)設(shè)置根元素的字體大小,并且在窗口大小改變時(shí)重新設(shè)置,確保在不同屏幕尺寸下都能正常適配。
7. 運(yùn)行項(xiàng)目
運(yùn)行以下命令啟動(dòng)開發(fā)服務(wù)器:
npm run serve
現(xiàn)在,當(dāng)你打開瀏覽器查看項(xiàng)目時(shí),Vue 組件中使用 px 單位編寫的樣式會(huì)被自動(dòng)轉(zhuǎn)換為 rem 單位,從而實(shí)現(xiàn)手機(jī)端屏幕適配。
通過以上步驟,你就可以在 Vue 項(xiàng)目中成功應(yīng)用配置好的 PostCSS 進(jìn)行屏幕適配。如果需要其他功能,還可以結(jié)合更多的 PostCSS 插件進(jìn)行配置。
到此這篇關(guān)于Vue項(xiàng)目使用PostCSS做h5頁面的屏幕適配的配置步驟的文章就介紹到這了,更多相關(guān)Vue PostCSS做h5頁面屏幕適配內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
vue中的計(jì)算屬性的使用和vue實(shí)例的方法示例
本篇文章主要介紹了vue計(jì)算屬性的使用和vue實(shí)例的方法示例,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2017-12-12
vue3.0中ref與reactive的區(qū)別及使用場景分析
ref與reactive都是Vue3.0中新增的API,用于響應(yīng)式數(shù)據(jù)的處理,這篇文章主要介紹了vue3.0中ref與reactive的區(qū)別及使用,需要的朋友可以參考下2023-08-08
使用el-checkbox-group選中后值為true和false遇到的坑
這篇文章主要介紹了使用el-checkbox-group選中后值為true和false遇到的坑及解決,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-07-07
解決Vue路由導(dǎo)航報(bào)錯(cuò):NavigationDuplicated:?Avoided?redundant?navig
這篇文章主要給大家介紹了關(guān)于解決Vue路由導(dǎo)航報(bào)錯(cuò):NavigationDuplicated:?Avoided?redundant?navigation?to?current?location的相關(guān)資料,這是最近做項(xiàng)目時(shí)候遇到的一個(gè)問題,現(xiàn)將解決辦法分享出來,需要的朋友可以參考下2023-01-01
vue2.0路由切換后頁面滾動(dòng)位置不變BUG的解決方法
下面小編就為大家分享一篇vue2.0路由切換后頁面滾動(dòng)位置不變BUG的解決方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2018-03-03
Vue中Layout內(nèi)部布局el-row、el-col的實(shí)現(xiàn)
layout是一種非常方便的布局方式,本文主要介紹了Vue中Layout內(nèi)部布局el-row、el-col的實(shí)現(xiàn),具有一定的參考價(jià)值,感興趣的可以了解一下2024-07-07
淺談將three項(xiàng)目遷移至vue項(xiàng)目遇到的問題
本文主要介紹了將three項(xiàng)目遷移至vue項(xiàng)目遇到的問題,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-01-01
vue2.0+elementui實(shí)現(xiàn)一個(gè)上門取件時(shí)間組件
這篇文章主要給大家介紹了關(guān)于vue2.0+elementui實(shí)現(xiàn)一個(gè)上門取件時(shí)間組件的相關(guān)資料,用于預(yù)約上門服務(wù)時(shí)間 看到網(wǎng)上有很多亂七八糟的代碼,看著頭疼,于是自己寫了一個(gè)簡單的,需要的朋友可以參考下2024-02-02
vue登錄頁實(shí)現(xiàn)使用cookie記住7天密碼功能的方法
這篇文章主要介紹了vue登錄頁實(shí)現(xiàn)使用cookie記住7天密碼功能的方法,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2021-02-02

