国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > JavaScript > 正文

vue做移動端適配最佳解決方案(親測有效)

2019-11-19 13:02:52
字體:
來源:轉載
供稿:網友

vw 解決方案

1. 安裝并配置PostCss插件

復制代碼 代碼如下:
npm i postcss-aspect-ratio-mini postcss-px-to-viewport postcss-write-svg postcss-cssnext postcss-viewport-units cssnano --S

2. 對 PostCss 進行配置

找到在根目錄中的.postcssrc.js,對PostCSS插件進行配置

module.exports = { "plugins": {  "postcss-import": {},  "postcss-url": {},  // to edit target browsers: use "browserslist" field in package.json  "postcss-write-svg": {   uft8: false  },  "postcss-cssnext": {},  "postcss-px-to-viewport": {   viewportWidth: 750, // 視窗的寬度,對應的是我們設計稿的寬度,一般是750   viewportHeight: 1334, // 視窗的高度,根據750設備的寬度來指定,一般指定1334,也可以不配置   unitPrecision: 3, // 指定`px`轉換為視窗單位值的小數位數(很多時候無法整除)   viewportUnit: 'vw', // 指定需要轉換成的視窗單位,建議使用vw   selectorBlackList: ['.ignore', '.hairlines'], // 指定不轉換為視窗單位的類,可以自定義,可以無限添加,建議定義一至兩個通用的類名   minPixelValue: 1, // 小于或等于`1px`不轉換為視窗單位,你也可以設置為你想要的值   mediaQuery: false // 允許在媒體查詢中轉換`px`  },  "postcss-viewport-units": {},  "cssnano": {   preset: "advanced",   autoprefixer: false, // 和cssnext同樣具有autoprefixer,保留一個   "postcss-zindex": false  } }}

3. 引入viewport-units-buggyfill解決兼容問題

在 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><script> window.onload = function () {   window.viewportUnitsBuggyfill.init({ hacks: window.viewportUnitsBuggyfillHacks }); }</script>

最近在做商城的項目,發現有贊的ui非常適合,但有一個問題是有贊的ui用的單位是px,做不了移動端的適配,官網的提供的vw適配方案發現不可行,最后還是決定rem來做適配,上網搜了一下,發現了一套可用方案,親測有效哦

它的原理是借助px2rem 插件方便的將px單位轉為了rem

具體步驟:

安裝

npm install px2rem-loader lib-flexible --save 

在main.js中引入lib-flexible

import 'lib-flexible/flexible.js'

在build下的 utils.js中,找到generateLoaders 方法,添加以下代碼

const px2remLoader = {  loader: 'px2rem-loader',  options: {  remUnit: 37.5  }} function generateLoaders (loader, loaderOptions) {  const loaders = [cssLoader, px2remLoader]  if (loader) {    loaders.push({    loader: loader + '-loader',    options: Object.assign({}, loaderOptions, {    sourceMap: options.sourceMap    })  })}

重啟項目,會發現自己設置的px被轉為rem 了

但是有一定的局限性

以上實現轉換適用于:

(1)組件中編寫的<style></style>下的css

(2)從index.js或者main.js中import ‘../../static/css/reset.css'引入css

(3)在組件的<script type=”text/ecmascript-6″> import ‘../../static/css/reset.css'</script>中引入css

另外的情況不適用:

(1)組件<style></style>中@import “../../static/css/reset.css (可考慮上面(2)、(3)的形式引入)

(2)外部樣式:<link rel=”stylesheet” href=”static/css/reset.css”>

(3)元素內部樣式:style=”height: 417px; width: 550px;”

另外我要補充的是:在做移動端適配的時候我們不建議給字體也設置rem的單位,針對這種情況,我為字體適配的解決方案是使用媒體查詢,文件以組件<style></style>中@import “../../static/css/reset.css形式引入,可完美解決移動端適配問題

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持武林網。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 凉城县| 灵台县| 隆德县| 榆树市| 河东区| 娱乐| 方城县| 竹北市| 陇西县| 达尔| 门头沟区| 习水县| 界首市| 巴马| 手机| 阜南县| 兰溪市| 德江县| 子长县| 镇远县| 高平市| 安阳县| 保亭| 彩票| 庄浪县| 尖扎县| 尚志市| 双鸭山市| 宜良县| 平邑县| 桐柏县| 永和县| 嘉荫县| 西青区| 浦县| 丰原市| 三都| 阿瓦提县| 尤溪县| 潼关县| 千阳县|