vue.js移動端配置flexible.js

来源:https://www.cnblogs.com/dreamcc/archive/2019/04/10/10681358.html
-Advertisement-
Play Games

前言 最近在用vue做移動端項目,網上找了一些移動端適配的方案,個人覺得手淘團隊flexible.js還是比較容易上手,在這裡做下總結。 主體 flexible.js適配方案採用rem佈局,根據屏幕解析度大小不同,調整根元素html的font size,從而達到每個元素寬高自動變化,適配不同屏幕 1 ...


前言

最近在用vue做移動端項目,網上找了一些移動端適配的方案,個人覺得手淘團隊flexible.js還是比較容易上手,在這裡做下總結。

主體

flexible.js適配方案採用rem佈局,根據屏幕解析度大小不同,調整根元素html的font-size,從而達到每個元素寬高自動變化,適配不同屏幕

  1. 安裝lib-flexible.js

npm install lib-flexible --save

  1. 在項目入口文件main.js中引入lib-flexible

import 'lib-flexible/flexible'

通過要以上兩步,就完成了在vue項目使用lib-flexible來解決移動端適配了。

lib-flexible會自動在html的head中添加一個meta name="viewport"的標簽,同時會自動設置html的font-size為屏幕寬度除以10,也就是1rem等於html根節點的font-size。假如設計稿的寬度是750px,此時1rem應該等於75px。假如量的某個元素的寬度是150px,那麼在css裡面定義這個元素的寬度就是 width: 2rem

這裡需要註意幾點:

  1. 檢查一下html文件的head中,如果有 meta name="viewport"標簽,需要將他註釋掉,因為如果有這個標簽的話,lib-flexible就會預設使用這個標簽。而我們要使用lib-flexible自己生成的 meta name="viewport"來達到高清適配的效果。

  2. 因為html的font-size是根據屏幕寬度除以10計算出來的,所以我們需要設置頁面的最大寬度是10rem。

  3. 如果每次從設計稿量出來的尺寸都手動去計算一下rem,就會導致我們效率比較慢,還有可能會計算錯誤,所以我們可以使用px2rem-loader自動將css中的px轉成rem

使用 webpack 的 px2rem-loader,自動將px轉換為rem

  1. 安裝px2rem-loader

npm install px2rem-loader --save-dev

  1. 配置px2rem-loader

首先找到 build/utils.js文件,在utils.js中添加如下配置

找到generateLoaders方法,在函數里如下配置

  1. px2rem 用法

安裝px2rem後,再使用px上有些不同,大家可以參考px2rem官方介紹,下麵簡單介紹一下。

  • 直接寫px,編譯後會直接轉化成rem —- 除開下麵兩種情況,其他長度用這個

  • 在px後面添加/*no*/,不會轉化px,會原樣輸出。 —- 一般border需用這個

  • 在px後面添加/*px*/,會根據dpr的不同,生成三套代碼。—- 一般字體需用這個

下麵是本人寫的實例代碼,可以參考

原始代碼:

.box{
    width: 150px;
    font-size: 28px; /*px*/
    border: 1px solid #ddd; /*no*/
}

編譯後生成代碼:

.box{
    width: 2rem;
    border: 1px solid #ddd;
}
[data-dpr="1"] .selector {
    font-size: 14px;
}
[data-dpr="2"] .selector {
    font-size: 28px;
}
[data-dpr="3"] .selector {
    font-size: 42px;
}

這樣基本配置就完成了,重啟項目就可以使用lib-flexible+rem編寫移動端頁面了

尾碼

交個朋友,可以一起進階前端學習

找到我: GitHub

如果你覺得本文對你有幫助,歡迎轉載,煩請註明出處,謝謝!


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • jQuery設置了很多為標簽進行屬性的操作,比如添加、刪除。 一 、屬性 1 attr(name | properties | [key, value | fn]) 設置或返回被選擇的屬性值。 參數: (1) name :屬性名,返回該屬性值。 (2) properties:該參數為'名 : 值' ...
  • 一、事件流 事件是js與HTML交互的基礎,事件流描述的是頁面接受事件的順序,而事件流又分為三個階段:捕獲階段、目標階段和冒泡階段。 如果單純的事件處理,事件捕獲和事件冒泡二選一即可,導致兩者並存的原因是當年微軟和網景的瀏覽器大戰,微軟提出了事件冒泡,而網景提出了事件捕獲。 1、事件冒泡 事件開始由 ...
  • HTML代碼: 在一個div容器內,設置3個span CSS代碼: 在css中,light在後面,所以後面變換顏色通過的是 classList.toggle('light') 此時的效果 scipt代碼: <script> function l() { r_l()//紅燈亮 setTimeout(y ...
  • 一.安裝 首先打開Bootstarp的官網:https://v3.bootcss.com 下載完成後,解壓壓縮包,把解壓後的文件導入pycham中 在HTML頁面中的style中導入bootstrap的css文件和js文件,建議導入min.css,體積更小 以我的文件路徑為例: 安裝完成 二.更改p ...
  • 1、#id 根據給定的ID匹配一個元素,如果選擇器中包含特殊字元,可以用雙斜桿(\\) 轉義 如: 查找ID 為 myDiv[bar] 的元素 HTML 代碼: jQuery 代碼: 結果: 2、element 根據給定元素名匹配所有元素 如: 查找一個 DIV 元素。 HTML 代碼: jQuer ...
  • 自學前端開始,我對meta標簽接觸不多,主要把精力都集中在能顯示出來的標簽上,比如span、button、h1等等。有時候去查看一些知名網站的源碼,發現head標簽里有一大摞的meta。 今天就來學習一下meta的用處,看看有些啥屬性。 一、定義及作用 meta,即元數據(Metadata)是數據的 ...
  • 摘要: 理解JS執行原理。 原文: "JavaScript是如何工作的:引擎,運行時和調用堆棧的概述!" 作者: "前端小智" "Fundebug" 經授權轉載,版權歸原作者所有。 本文是旨在深入研究JavaScript及其實際工作原理的系列文章中的第一篇:我們認為通過瞭解JavaScript的構建 ...
  • 一、說說你對html語義化的理解? 答:1、去掉或者丟失樣式的時候能夠讓頁面呈現出清晰的結構 2、有利於SEO:與搜索引擎建立良好的溝通,有助於爬蟲抓取更過的有效信息,因為爬蟲依賴標簽來確定上下文和各個關鍵字的權重 3、方便其他設備解析,例如屏幕閱讀器,盲人閱讀器,移動設備 4、便於團隊開發和維護, ...
一周排行
    -Advertisement-
    Play Games
  • 前言 本文介紹一款使用 C# 與 WPF 開發的音頻播放器,其界面簡潔大方,操作體驗流暢。該播放器支持多種音頻格式(如 MP4、WMA、OGG、FLAC 等),並具備標記、實時歌詞顯示等功能。 另外,還支持換膚及多語言(中英文)切換。核心音頻處理採用 FFmpeg 組件,獲得了廣泛認可,目前 Git ...
  • OAuth2.0授權驗證-gitee授權碼模式 本文主要介紹如何筆者自己是如何使用gitee提供的OAuth2.0協議完成授權驗證並登錄到自己的系統,完整模式如圖 1、創建應用 打開gitee個人中心->第三方應用->創建應用 創建應用後在我的應用界面,查看已創建應用的Client ID和Clien ...
  • 解決了這個問題:《winForm下,fastReport.net 從.net framework 升級到.net5遇到的錯誤“Operation is not supported on this platform.”》 本文內容轉載自:https://www.fcnsoft.com/Home/Sho ...
  • 國內文章 WPF 從裸 Win 32 的 WM_Pointer 消息獲取觸摸點繪製筆跡 https://www.cnblogs.com/lindexi/p/18390983 本文將告訴大家如何在 WPF 裡面,接收裸 Win 32 的 WM_Pointer 消息,從消息裡面獲取觸摸點信息,使用觸摸點 ...
  • 前言 給大家推薦一個專為新零售快消行業打造了一套高效的進銷存管理系統。 系統不僅具備強大的庫存管理功能,還集成了高性能的輕量級 POS 解決方案,確保頁面載入速度極快,提供良好的用戶體驗。 項目介紹 Dorisoy.POS 是一款基於 .NET 7 和 Angular 4 開發的新零售快消進銷存管理 ...
  • ABP CLI常用的代碼分享 一、確保環境配置正確 安裝.NET CLI: ABP CLI是基於.NET Core或.NET 5/6/7等更高版本構建的,因此首先需要在你的開發環境中安裝.NET CLI。這可以通過訪問Microsoft官網下載並安裝相應版本的.NET SDK來實現。 安裝ABP ...
  • 問題 問題是這樣的:第三方的webapi,需要先調用登陸介面獲取Cookie,訪問其它介面時攜帶Cookie信息。 但使用HttpClient類調用登陸介面,返回的Headers中沒有找到Cookie信息。 分析 首先,使用Postman測試該登陸介面,正常返回Cookie信息,說明是HttpCli ...
  • 國內文章 關於.NET在中國為什麼工資低的分析 https://www.cnblogs.com/thinkingmore/p/18406244 .NET在中國開發者的薪資偏低,主要因市場需求、技術棧選擇和企業文化等因素所致。歷史上,.NET曾因微軟的閉源策略發展受限,儘管後來推出了跨平臺的.NET ...
  • 在WPF開發應用中,動畫不僅可以引起用戶的註意與興趣,而且還使軟體更加便於使用。前面幾篇文章講解了畫筆(Brush),形狀(Shape),幾何圖形(Geometry),變換(Transform)等相關內容,今天繼續講解動畫相關內容和知識點,僅供學習分享使用,如有不足之處,還請指正。 ...
  • 什麼是委托? 委托可以說是把一個方法代入另一個方法執行,相當於指向函數的指針;事件就相當於保存委托的數組; 1.實例化委托的方式: 方式1:通過new創建實例: public delegate void ShowDelegate(); 或者 public delegate string ShowDe ...