近些年移動(dòng)端的強(qiáng)勢(shì)崛起圣絮,導(dǎo)致移動(dòng)端適配越來越重要,個(gè)人之前一直使用的是手淘的
Flexible
進(jìn)行適配透乾,附上鏈接《使用Flexible實(shí)現(xiàn)手淘H5頁(yè)面的終端適配》,但是發(fā)現(xiàn)并不是非常完美势决,給力的是大漠老師寫了一篇《如何在Vue項(xiàng)目中使用vw實(shí)現(xiàn)移動(dòng)端適配》贾富,比較完美的解決了適配問題,下面是自己動(dòng)手搭建后的一些整理崇决。
創(chuàng)建項(xiàng)目
//vue-cli 3.0+ 版本
vue init webpack vue-vw-demo
cd vue-vw-demo
安裝必要插件
cnpm i postcss-aspect-ratio-mini postcss-px-to-viewport postcss-write-svg postcss-cssnext postcss-viewport-units cssnano postcss-import postcss-url --S
配置根目錄下的postcss.config.js
module.exports = {
"plugins": {
"postcss-import": {},
"postcss-url": {},
"postcss-aspect-ratio-mini": {},
"postcss-write-svg": { utf8: false },
"postcss-cssnext": {},
"postcss-px-to-viewport": {
viewportWidth: 750, // 視窗的寬度材诽,對(duì)應(yīng)的是我們?cè)O(shè)計(jì)稿的寬度,一般是750
viewportHeight: 1334, // 視窗的高度恒傻,根據(jù)750設(shè)備的寬度來指定脸侥,一般指定1334,也可以不配置
unitPrecision: 3, // 指定`px`轉(zhuǎn)換為視窗單位值的小數(shù)位數(shù)(很多時(shí)候無法整除)
viewportUnit: 'vw', // 指定需要轉(zhuǎn)換成的視窗單位碌冶,建議使用vw
selectorBlackList: ['.ignore', '.hairlines'], // 指定不轉(zhuǎn)換為視窗單位的類湿痢,可以自定義,可以無限添加,建議定義一至兩個(gè)通用的類名
minPixelValue: 1, // 小于或等于`1px`不轉(zhuǎn)換為視窗單位,你也可以設(shè)置為你想要的值
mediaQuery: false // 允許在媒體查詢中轉(zhuǎn)換`px`
},
"postcss-viewport-units":{},
"cssnano": {
preset: "advanced",
autoprefixer: false,
"postcss-zindex": false
}
}
}
兼容 vw
//在index.html添加js
<script src="http://g.alicdn.com/fdilab/lib3rd/viewport-units-buggyfill/0.6.2/??viewport-units-buggyfill.hacks.min.js,viewport-units-buggyfill.min.js"></script>
//在index.html中調(diào)用viewport-units-buggyfill
<script>
window.onload = function () {
window.viewportUnitsBuggyfill.init({
hacks: window.viewportUnitsBuggyfillHacks
});
}
//防止某些瀏覽器對(duì)img處理了content導(dǎo)致不顯示,reset.css添加
img {
content: normal !important;
}
</script>
配置scss
cnpm install node-sass --save-dev
cnpm install sass-loader --save-dev
為./build/webpack.base.config.js
添加如下配置
module.exports = {
module: {
rules: [
...
{
test: /\.scss$/,
loaders: ["style", "css", "sass"]
}
]
}
}
Tip:組件中使用譬重,記得加上lang='scss'
拒逮。
最后運(yùn)行
cnpm run dev
啟動(dòng)項(xiàng)目,最后還是推薦看一看大漠老師的原文《如何在Vue項(xiàng)目中使用vw實(shí)現(xiàn)移動(dòng)端適配》臀规,原文寫的很清楚滩援,對(duì)各個(gè)插件也進(jìn)行了解釋,相信你看了會(huì)有收獲塔嬉。