91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

vue如何做移動端適配

發布時間:2021-08-02 14:47:55 來源:億速云 閱讀:209 作者:小新 欄目:web開發

這篇文章主要介紹了vue如何做移動端適配,具有一定借鑒價值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。

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="//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形式引入,可完美解決移動端適配問題

感謝你能夠認真閱讀完這篇文章,希望小編分享的“vue如何做移動端適配”這篇文章對大家有幫助,同時也希望大家多多支持億速云,關注億速云行業資訊頻道,更多相關知識等著你來學習!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

vue
AI

垫江县| 栖霞市| 怀化市| 衢州市| 武清区| 义乌市| 鄢陵县| 栖霞市| 宁南县| 兴文县| 昭觉县| 叙永县| 昆山市| 屏南县| 凌海市| 黎城县| 伽师县| 信阳市| 成安县| 晴隆县| 新疆| 江津市| 乐山市| 徐汇区| 太白县| 鄂州市| 盐源县| 平罗县| 屏边| 克东县| 张家港市| 万载县| 太仓市| 达拉特旗| 漳浦县| 宝应县| 手游| 肃宁县| 会宁县| 平陆县| 大新县|