持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第3天,点击查看活动详情
写在前面,前面我们已经介绍过移动端屏幕适配方案,这篇文章我们主要介绍一下PC端屏幕适配方案,相对于移动端来说,PC端屏幕适配就比较简单了。
响应式布局
对于PC端布局来说,浏览器都是可以手动缩小的,对于这种类型的PC端,一般有两种方式:媒体查询+流式布局, 另外一种就是采用rem布局。 PC端项目主要分为两类:
- 官网:这种页面特点就是页面主体内容居中显示,页面最底层有个背景,并且当浏览器小于某些宽度的话会有一个横向滚动条
- 管理系统:这类系统页面有一个显著的特点,就是左侧是菜单栏,右边是主要页面内容,当浏览器过小也会有横向滚动条
1. 媒体查询 + 流式布
对于以上这种,都可以采用flex布局来实现,官网这类就相当于是单列布局,管理系统这种就相当于是两列布局。具体实现如下:
- 给页面设置最小宽度
#app {
min-width: 960px;
}
- 页面采用flex布局
- 对于容器类元素设置width:100%
- 必要的话采用vw
- 对于某些特殊屏幕采用媒体查询适配。
2. rem适配方案
对于一般浏览器的适配采用上面的适配方案基本就足够了,如果还需要适配跟着屏幕大小进行像素级适配的话,那就还需要使用rem布局方案。 这种布局方案和移动端一样,只是设计稿的基础值不一样而已。
2.1 动态设置html的font-size
- 手动实现js
在main.js中引入该js文件// rem等比适配配置文件 // 基准大小 const baseSize = 14 // 设置 rem 函数 function setRem() { // 当前页面宽度相对于1920宽的缩放比例,可根据自己需要修改。 const scale = document.documentElement.clientWidth / 1920 // 设置页面根节点字体大小(“Math.min(scale, 2)” 指最高放大比例为2,可根据实际业务需求调整) const fontsize = baseSize * Math.min(scale, 4) document.documentElement.style.fontSize = `${fontsize >= 12 ? fontsize : 12}px` } // 初始化 setRem() // 改变窗口大小时重新设置 rem window.onresize = function() { setRem() }import '@/rem.js' - 使用插件amfe-flexible
安装插件:
在main.js中引入插件npm i lib-flexible amfe-flexible --save-devimport 'amfe-flexible';
2.2 使用插件将px转成rem
安装插件
npm install postcss-pxtorem --save-dev
配置
//
module.exports = {
plugins: {
'postcss-pxtorem': { //1920
rootValue: 20, // 设计稿元素尺寸/20,比如设计稿元素宽1920px,最终页面会换算成1920/20= 96rem
propList: ['*']
}
}
}
配置完成之后,就可以正常在页面中使用px开发了,然后在浏览器中会正常转成rem.