700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > 移动端rem适配布局:Vue+amfe-flexible+postcss-pxtorem

移动端rem适配布局:Vue+amfe-flexible+postcss-pxtorem

时间:2018-12-30 12:05:01

相关推荐

移动端rem适配布局:Vue+amfe-flexible+postcss-pxtorem

rem(root em)是一个相对单位,基准是相对于html元素的字体大小(浏览器默认字体大小是16px)。如:根元素(html)设置font-size: 12px; 非根元素设置width: 2rem; 则换成px表示就是24px。

amfe-flexible:原理是把当前设备宽度划分为10等份,动态设置html元素的字体大小为一份。如:当前屏幕宽度为360px,html元素的字体大小为36px。

postcss-pxtorem:不同设备下,元素占比是一定的,即rem的值不变。此工具自动将px转成rem。

步骤:

1、安装

npm install amfe-flexible --savenpm install postcss-pxtorem --save

2、main.js中导入amfe-flexible

import 'amfe-flexible'

3、配置postcss-pxtorem,可在.postcssrc.js文件配置

module.exports = {"plugins": {'postcss-pxtorem': {rootValue: 37.5,propList: ['*']}}}

其中:

rootValue:根据设计稿除以10进行配置。如:设计稿是750,rootValue即为75。若此时引入了mint-ui等UI库,当屏宽为750时1:1还原mint-ui的组件,但相对于整个页面来说组件偏小。此时,rootValue设为37.5,用375的设计稿开发,效果基本满足。propList:[Array],设置需要转换的属性。['*']:转换全部属性。['*', '!letter-spacing']:转换除letter-spacing外的全部属性。

也可以在vue.config.js文件配置(vue-cli3)

const pxtorem = require('postcss-pxtorem')module.exports = {css: {extract: { ignoreOrder: true },loaderOptions:{postcss: {plugins: [pxtorem({rootValue: 37.5, // UI图宽的十分之一propList: ['*']})]}}}};

4、CSS代码

.test {font-size: 37.5px; /* converted to 1rem */}

5、浏览器的效果

html的字体大小是屏宽的1/10css代码中的px自动转换为rem

6、tips

不进行rem转换,最直接的方式是使用Px或PX。

.ignore {border: 1Px solid; // ignoredborder-width: 2PX; // ignored}

另:postcss-pxtorem有多种参数配置方式,可忽略转换,请自行学习。

amfe-flexible自动计算html的字体大小。对于超过750px的屏宽,按750处理,同时设置font-size为75px。

body {min-width: 320px;max-width: 750px;width: 10rem;margin: 0 auto;}@media screen and (min-width: 750px) {html {font-size: 75px !important;}}

The End

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。