前端平常开发工做中,常常会遇到一些大屏的项目需求,例如一个3 * 3的大屏,实际屏幕尺寸为5760 * 3240,可是咱们拿到的设计稿尺寸为1920 * 1080,5 * 3的大屏,实际屏幕尺寸为9600 * 3240,可是咱们拿到的设计稿尺寸为3200 * 1080,能够看出拿到的设计稿基本上为实际尺寸/3的尺寸比例,那咱们怎么在本身的开发环境中调试呢?而且达到屏幕适配呢?css
amfe-flexible主要用于解决移动端的适配问题,amfe-flexible将html的font-size设置为屏幕分辨率宽/10,即1920 * 1080的分辨率html的font-size就应该是192。html
npm install amfe-flexible -S
复制代码
// main.js引入 import 'amfe-flexible'; 复制代码
rem是CSS3新增的相对长度单位,是指相对于根元素html的font-size计算值的大小。简单可理解为屏幕宽度的百分比。 使用amfe-flexible将html的font-size设置为屏幕分辨率宽/10后,咱们就能够根据根元素html的大小计算。前端
根html的font-size为192;
// px
.dom {
width: 100px;
}
// 自动转换成rem
.dom {
// 100/192
width: 0.52083333rem;
}
复制代码
可是咱们一个页面会有不少的px单位,若是每个都须要手动去计算,会增长很大一部分工做量,全部咱们能够使用postcss-pxtorem
,引入一个自动计算的包将我定义的px自动转为rem单位。npm
postcss-pxtorem会将px转换为rem,rem单位用于适配不一样宽度的屏幕,根据标签的font-size值来计算出结果,1rem=html标签的font-size值bash
npm install postcss-px2rem -S
复制代码
配置postcss-pxtorem 新建.postcssrc.js文件markdown
module.exports = { "plugins": { 'postcss-pxtorem-include': { include: 'src/views/fullScreen/*', // 制定转换的目录 rootValue: 320, // 设置根据多大设计稿尺寸 unitPrecision: 6, propList: ['*'], }, } } 复制代码
注意:include能够指定须要转换px - rem的目录或者文件 rootValue须要特别注意,这个值是你拿到的设计稿的宽度/10,例如1920 * 1080的设计稿,此处rootValue:192,若是设计稿的尺寸为3200 * 1080(5*3)的尺寸,此处rootValue: 320;echarts
3*3大屏 设计稿尺寸 1920 * 1080 实际投屏尺寸 5760 * 3240 咱们按照设计稿的尺寸设置一个DOMdom
//根html的font-size:192
.dom {
width: 200px;
height: 200px;
}
// 转为rem
.dom {
// 200/192
width: 1.0416666667rem;
height: 1.0416666667rem;
}
复制代码
在实际投屏尺寸 5760 * 3240中,DOM对应的实际宽高计算以下:post
// 根html的font-size: 576
.dom {
// 1.0416666667 * 576
width: 600px;
height: 600px;
}
复制代码
实例查看flex
5 * 3 大屏 设计稿尺寸 3200 * 1080 实际投屏尺寸 9600 * 3240
//根html的font-size: 320
.dom {
width: 200px;
height: 200px;
}
// 转为rem
.dom {
// 200/320
width: 0.625rem;
height: 0.625rem;
}
复制代码
在实际投屏尺寸 9600 * 3240中,DOM的实际宽高计算以下:
// 根html的font-size: 960
.dom {
// 0.625 * 960
width: 600px;
height: 600px;
}
复制代码
实例查看
// num为设置的大小(px) function getSizeByScreen(num) { // 这里的3200为你设计稿的宽度。 return Math.ceil((num / 3200) * window.screen.width); } 复制代码