Vue移动端用淘宝弹性布局lib-flexible插件做适配

淘宝弹性布局lib-flexible

lib-flexible并不单独使用,而是搭配px2rem-loader一起做适配方案,目的是自动将css中的px转换成rem,在项目中还是按照设计稿写上对应的固定像素(px)就行。

移动端适配的具体步骤

第一步:安装插件 lib-flexible
npm i lib-flexible --save-dev
第二步:安装px2rem loader
npm install px2rem-loader --save-dev
第三步:在main.js中引入lib-flexible
import 'lib-flexible/flexible'
第四步:在build中的util.js文件中配置px2rem-loader

先找到build文件里面的utils.js文件,找到cssLoaders函数,把px2rem-loade(下面代码)添加到函数中。

const px2remLoader = {
    loader: 'px2rem-loader',
    options: {
      remUnit: 75  // remUnit为转换rem的基础 设计稿单位/等分数 = remUnit
    }
  }

然后再找到cssLoaders中的generateLoaders的函数,添加上px2rem-loader。

function generateLoaders (loader, loaderOptions) {
    
	const loaders = options.usePostCSS ? [cssLoader, postcssLoader, px2remLoader] : [cssLoader, px2remLoader]

	 if (loader) {
	    loaders.push({
	      loader: loader + '-loader',
	      options: Object.assign({}, loaderOptions, {
	        sourceMap: options.sourceMap
	      })
	    })
	  }

在这里插入图片描述
(请忽略我的编辑器背景,哈哈!)

项目展示

代码中头像宽高样式为130px,项目是以750px的设计稿为例,
在这里插入图片描述

以375px的屏幕为例:

在这里插入图片描述

以411px的屏幕为例:

在这里插入图片描述

以768px的屏幕为例:

在这里插入图片描述

总而言之,当项目使用来lib-flexible插件后,元素的宽度会根据手机的分辨率大小自动调节,来实现移动端屏幕的适配!

不过目前此插件已停止维护,但是不耽误使用,搜索lib-flexible时,github上出来的是amfe-flexible,
在这里插入图片描述
下面有amfe-flexible的git地址,大家没事也可以学习学习,虽然lib-flexible很好用但是我们也要与时俱进啊! amfe-flexible.

  • 3
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
Vue移动主要涉及到屏幕尺寸、DPI、像素密度等方面的问题,下面我提供两种常用的方案: 1. 使用Flexible + rem布局方案 Flexible + rem布局方案是一种比较流行的移动方案,主要原理是将屏幕分成10份,用html的font-size来表示1份的宽度,然后使用rem单位进行布局,通过动态改变html的font-size不同的屏幕宽度。 具体实现步骤如下: 1)安装 flexible 和 postcss-pxtorem ``` npm install lib-flexible postcss-pxtorem --save ``` 2)在 main.js 中引入 flexible ``` import 'lib-flexible/flexible' ``` 3)在项目根目录下创建postcss.config.js ``` module.exports = { plugins: { 'postcss-pxtorem': { rootValue: 75, // 1rem = 75px,75是设计稿宽度的1/10 propList: ['*'] } } } ``` 4)在App.vue中设置样式 ``` <style lang="scss"> html { font-size: 50px; // 设计稿宽度的1/10 } body { font-size: 14px; color: #333; margin: 0; padding: 0; } </style> ``` 2. 使用vw/vh单位进行布局 vw/vh单位是相对视口宽度和高度的单位,1vw表示视口宽度的1%,1vh表示视口高度的1%。利用vw/vh单位进行布局,可以实现简单的效果。 具体实现步骤如下: 1)在项目根目录下创建postcss.config.js ``` module.exports = { plugins: { 'postcss-px-to-viewport': { viewportWidth: 750, // 设计稿宽度 viewportHeight: 1334, // 设计稿高度 unitPrecision: 3, viewportUnit: 'vw', selectorBlackList: ['.ignore', '.hairlines'], minPixelValue: 1, mediaQuery: false } } } ``` 2)在App.vue中设置样式 ``` <style lang="scss"> html, body { margin: 0; padding: 0; } body { font-size: 14px; color: #333; } .container { width: 100vw; height: 100vh; padding: 20vw; background-color: #eee; } </style> ``` 以上是两种常用的Vue移动方案,具体选择哪种方案可以根据项目实际情况进行选择。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

前端探险家

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值