一. 认识大屏设备
1. 认识大屏
在开发网页时,我适配最多的屏幕尺寸是:
PC
端电脑:1920px * 1080px
(当然也有少部分电脑是支持输出4k
屏, 比如:小米笔记本等)- 移动设备:
750px * auto
那什么是大屏设备
- 在我们的生活中,经常会见到一些比较大的屏幕,比如:指挥大厅、展厅、展会中的大屏。这些设备就可以称之为大屏设备,当然
1920*1080
和3840*2160(4k屏)
也可以说是属于大屏
- 在我们的生活中,经常会见到一些比较大的屏幕,比如:指挥大厅、展厅、展会中的大屏。这些设备就可以称之为大屏设备,当然
大屏的应用场景
- 通常用在数据可视化,借助于图形化手段,清晰有效地传达与沟通信息
- 比如用在:零售、物流、电力、水利、环保、交通、医疗等领域
- 通常用在数据可视化,借助于图形化手段,清晰有效地传达与沟通信息
大屏的硬件设备的分类:
拼接屏、LED屏、投影等
2.大屏设备-拼接屏
拼接屏
- 顾名思义就是很多屏幕按照一定拼接方式拼接而成
- 其实可以理解成是由很多电视(显示屏)拼接而成
- 常见的使用场景有指挥大厅、展厅、展会等等
- 顾名思义就是很多屏幕按照一定拼接方式拼接而成
拼接方式取决于使用场景的需求,如下例子:
1920px * 1080px
,即1 * 1
个 显示屏(16 : 9
)3840 * 2160(4k 屏 )
,即2 * 2
个显示屏(16 : 9
)5760 * 3240
,即3 * 3
个显示屏(16 : 9
)7680 * 3240
,即4 * 3
个显示屏(64 : 27
)9600 * 3240
,即5 * 3
个显示屏(80 : 27
)
3.大屏设备- LED
屏
LED
屏LED
也是现在大屏中常用的硬件,它是由若干单体屏幕模块组成的,它的像素点计算及拼接方式与拼接屏有很大区别LED
可以看成是矩形点阵,具体拼接方式也会根据现场实际情况有所不同,拼接方式的不同直接影响到设计的尺寸规则LED
屏有很多规格,各规格计算方法相同比如,我们用单体为
500 * 500
的作为标准计算,每个单体模块像素点横竖都为128px
如右图,横向
12
块竖向6
块,横向像素为128*12=1536px
,竖向128*6=768px
。可以使用横竖总像素去设计最终算出的屏幕尺寸:
1536px * 768px
4.定设计稿尺寸 - 拼接屏
- 拼接屏
- 大多数屏幕分辨率是
1920*1080
。当然也会有一些大屏,比如6*3
的拼接屏,横向分辨率为6*1920=11520px
。竖向分辨率为3*1080=3240px
。设计可以按照横竖计算后的总和(11520px * 3240px
)作为设计尺寸 - 这种尺寸过大的就不太适合按原尺寸设计,那怎么判断什么时候可以按照总和设计,什么时候最好不要按照总和设计。这有一个关键的节点
4K
,超过4K
后现有硬件会产生很多问题,例如:卡顿,GPU 压力过大,高负荷运行等等 - 正常设计建议最好是保持在
4K
内,由于硬件问题,所以现在大家采用的都是输出4K
及以下,既保证流畅度又能在视觉上清晰阅读 - 所以设计时也要保持同样的规则。保持大屏的比例等比缩放即可
- 注:最好是按照硬件的输出分辨率设计(关键),因为按照输出分辨率设计,一定不会出错
- 大多数屏幕分辨率是
- 比如
1920px * 1080px(1*1)
,设计搞尺寸 :1920px * 1080px
3840 * 2160(2*2 4k 屏 )
,设计搞尺寸 :3840 * 2160
5760 * 3240(3*3)
,设计搞尺寸 :5760 * 3240
7680 * 3240(4*3)
,设计搞尺寸 : (3840 * 1620
需要出1
倍图 和2
倍图,7680 * 3240
)9600 * 3240(5*3)
,设计搞尺寸 : 比如:4800 * 1620
,需要出1
倍图 和2
倍图- 大屏用
2
倍图,小屏用1
倍图
- 大屏用
- 根据实际情况来设计
5.定设计稿尺寸 - LED
屏
LED
屏LED
大屏是由若干单体屏幕模块组成的,LED
屏有很多规格,但是规格计算方法相同- 比如:我们用单体为
500 * 500
的作为标准计算,每个单体模块像素点横竖都为128px
- 如图横向
12
块竖向 6 块,横向像素为128*12=1536px
,竖向128*6=768px
。可以使用横竖总像素去设计 - 此处规则和之前的拼接屏一样,如果超过
4K
像素时可以等比缩放,建议尽量保持在4k
及以下
比如
1536px * 768px
,设计搞尺寸 :1536px * 768px
4608 * 3072
,设计搞尺寸 :608 * 3072
9216 * 6144
,设计搞尺寸 :比如:
4608 * 3072
,需要出1
倍图 和2
倍图
6.设计稿尺寸-移动端大屏
对于移动端的大屏展示,基本按照实际尺寸设计即可,比如:
750px * Auto
,设计搞尺寸 :750px * Auto
大屏设计稿尺寸的总结:
- 设计尺寸建议按照输出分辨率设计(重点)
- 拼接后像素在
4k
左右直接按照总和设计就行 - 总和设计建议不要超过
4k
,可以按比例缩小设计搞(非固定,超过也是可以,只是强烈建议) - 建议定设计搞尺寸前,先了解硬件及信号输入输出,确定设计搞的尺寸
- 特殊尺寸,需到现场调试最佳设计搞的尺寸
大屏适配方案的总结:
- 特殊尺寸不要考虑适配电脑屏幕又适配拼接屏,因为完全没有必要,也不可能一稿既适配电脑也适配各种尺寸大屏
- 这种情况应该优先考虑目标屏幕的适配,要针对性设计,而在小屏根据等比例缩放显示,这才是最佳的解决方法
二. 大屏适配方案
1.大屏适配方案
- 在学习大屏适配方案之前,我们现在回顾一下移动端的适配方案有哪些?
- 方案一:百分比设置
- 因为不同属性的百分比值,相对的可能是不同参照物,所以百分比往往很难统一
- 所以百分比在移动端适配中使用是非常少的
- 方案二:
rem
单位 + 动态设置html
的font-size
- 方案三:
vw
单位(推荐) - 方案四:
flex
的弹性布局(推荐)
- 方案一:百分比设置
- 大屏的幕尺寸通常也是非常多的,很多时候我们是希望页面在不同的屏幕尺寸上显示不同的尺寸,那大屏的适配方案有哪些?
- 方案一:百分比设置
- 方案二:
rem
单位 + 动态设置html
的font-size
- 方案三:
vw
单位 - 方案四:
flex
弹性布局 - 方案五:
scale
等比例缩放(推荐)
2.探究大屏适配方案

3.新建 大屏设备
在讲解大屏适配之前,我们先来创建几个大屏设备,这样可以方便我们学习和测试
在
chrome
浏览器中,打开DevTools
页面在选择设备下拉栏中,点击最后一个选项
Edit
然后在
Emulated Devices
中点击Add custom device
....最后在
Device
面板中输入设备信息,并点击Add
按钮完成设备的新建- 这里分别新建:
1920*1080 、 3840 * 2160 、 7680 * 2160
- 这里分别新建:
4.大屏适配方案1 – rem
+ font-size
动态设置
HTML
根字体大小 和body
字体大小(lib_flexible.js
)- 将设计稿的宽(
1920
)平均分成24
等份, 每一份为80px
pc
端一般分成24
份,移动端一般分成10
份- 为什么要分成
24
份 ? 目的是让缩放的细腻度更小,比如0.1rem -> 8px
HTML
字体大小就设置为80
px,即1rem = 80px
,24rem = 1920px
body
字体大小设置为16px
- 安装
cssrem
插件,root font size
设置为80px
。这个是px
单位转rem
的参考值px
转rem
方式:手动、less/scss
函数、cssrem
插件、webpack
插件、Vite
插件
- 接着就可以按照
1920px * 1080px
的设计稿愉快开发,此时的页面已经是响应式,并且宽高比不变
- 将设计稿的宽(
总结:
js// 1rem = 根元素 html 的 fontSize 的大小 // document.documentElement.style.fontSize 默认的值为空字符串 // 通过 getComputedStyle(el).fontSize 的方式计算之后可以获取到对应的值,默认是 16px ,实际根据浏览器设置的字体大小 const htmlEl = document.documentElement const rem = htmlEl.style.fontSize || getComputedStyle(htmlEl).fontSize // 使用 flexible 此类插件,将 html 根元素的 clientWidth ➗ 指定的份数,然后赋值给 html 根元素的 fontSize // clientWidth: 元素内容的宽度 + 内边距,即: content + padding-left + padding-right // pc端一般是 24 份,移动端一般是 10 份 htmlEl.style.fontSize = htmlEl.clientWidth / 10 // 编写的时候,使用 cssrem 此类插件,将 px 根据指定的根元素的 fontSize,来转化成对应的 rem // cssrem 插件的扩展设置中,设置转化时的根元素的 fontSize
5.大屏适配方案2 - vw
直接使用
vw
单位屏幕的宽默认为
100vw
,那么100vw = 1920px
,1vw = 19.2px
安装
cssrem
插件,body
的宽高(1920px * 1080px
)直接把px
单位转vw
单位pc
端一般是1920*1080
,移动端一般是750*1334
px
转vw
方式:手动、less/scss
函数、cssrem
插件、webpack
插件、Vite
插件
接着就可以按照
1920px * 1080px
的设计稿愉快开发,此时的页面已经是响应式,并宽高比不变
6.大屏适配方案3(推荐) - scale
使用
CSS3
中的scale
函数来缩放网页,这里我们将使用两种方案来实现:方案一:直接根据宽度的比率进行缩放。(宽度比率 = 网页当前宽 / 设计稿宽)
方案二:动态计算网页宽高比,决定是是否按照宽度的比率进行缩放
具体实现的代码,如下所示
注意:
- 这里不使用
margin
做水平居中的原因 - 当元素的左右
margin
为auto
,且元素的宽度大于视口的宽度时,浏览器会将该元素的margin-right
设为负值,来保持下面公式的成立 - 当内部块级元素独占父元素一行时:
- 父元素宽度 = 内部块级元素宽度 + 内部块级元素
margin-left
+ 内部块级元素margin-right
- 这里不使用
7.三种适配方案的对比
vw
相比于rem
的优势:- 优势一:不需要去计算
html
的font-size
大小,不需要给html
设置font-size
,也不需要设置body
的font-size
,防止继承 - 优势二:因为不依赖
font-size
的尺寸,所以不用担心某些原因html
的font-size
尺寸被篡改,页面尺寸混乱 - 优势三:
vw
相比于rem
更加语义化,1vw
是1/100
的viewport
大小(即将屏幕分成100
份); 并且具备rem
之前所有的优点
- 优势一:不需要去计算
vw
和rem
存在问题- 如果使用
rem
或vw
单位时,在JS
中添加样式时,单位需要手动设置rem
或vw
- 第三方库的字体等默认的都是
px
单位,比如:element、echarts
,因此通常需要层叠第三方库的样式 - 当大屏比例更大时,有些字体还需要相应的调整字号
- 如果使用
scale
相比vw
和rem
的优势- 优势一:相比于
vw
和rem
,使用起来更加简单,不需要对单位进行转换 - 优势二:因为不需要对单位进行转换,在使用第三方库时,不需要考虑单位转换问题
- 优势三:由于浏览器的字体默认最小是不能小于
12px
,导致rem
或vw
无法设置小于12px
的字体,缩放没有这个问题
- 优势一:相比于
三. 开发注意事项
1.大屏开发 注意事项
字体大小设置问题(非
scale
方案需要考虑)- 如果使用
rem
或vw
单位时,在JS
中添加样式时,单位需要手动设置rem
或vw
- 第三方库的字体等默认的都是
px
单位,比如:element
、echarts
,因此通常需要层叠第三方库的样式 - 当大屏比例更大时,有些字体还需要相应的调整字号
- 如果使用
图片模糊问题
- 切图时切
1
倍图、2
倍图,大屏用大图,小屏用小图 - 建议都使用
SVG
矢量图,保证放大缩小不会失真
- 切图时切
Echarts
渲染引擎的选择- 使用
SVG
渲染引擎,SVG
图扩展性更好
- 使用
动画卡顿优化
创建新的渲染层、启用
GPU
加速、善用CSS3
形变动画少用渐变和高斯模糊、当不需要动画时,及时关闭动画
四. 大屏项目实战
1.大屏项目搭建
- 创建
Vue3
项目:pnpm init vue@latest
- 安装依赖
echarts
:图表库(Canvas
、SVG
)countup.js
:数据滚动插件gsap
:js
动画库axios
:网络请求库normalize.css
:统一网页样式lodash
:js
工具函数库sass
:scss
编译器
2.大屏项目布局搭建
大屏项目布局搭建
1920px * 1080px
设计稿尺寸目标设备
16 : 9
3.大屏项目适配
scale
等比例缩放网页- 当组件挂载完成之后,监听
window
的resize
事件 - 获取当前的屏幕的宽度和高度
- 根据当前屏幕的宽高比来判断缩放的方式
- 当前屏幕宽高比
<=
设计稿的宽高比,参考X
轴缩放 - 当前屏幕宽高比
>
设计稿的宽高比,参考Y
轴缩放
- 当前屏幕宽高比
- 当组件挂载完成之后,监听
4.Echarts
图表
Echarts
图表组件的封装SVG
组件的封装

5.新能源充电桩数据可视化平台
- 项目经验(可视化开发)
- 新能源充电桩数据可视化平台 广州弘源科教软件有限公司 (2020.02-2020-06)
- 技术:
Vue3
Vue Router
Pinia
Echarts``
CanvasSVG
countup
Scss
Git
- 描述:新能源充电桩数据可视化平台包:充电桩统计、流程监控,实时充电数据展示,充电桩排名,充电数据统计,异常监控等功能
- 职责
- 参与需求讨论,制定开发计划,统一项目开规范等
- 独立负责大屏适配:小于
2k
屏、2k
屏、4k
屏、 大于4k
屏 、16:9
、非16:9
等屏幕适配 - 负责充电桩统计、流程监控,实时充电数据的可视化话开发,包括
2D
、2.5D
和3D
特效 - 负责封装公共的图表组件,包括:地图、折线图、条形图、数字滚动、
SVG
组件等等
- 技术:
- 增加吸引力
- 亮点
- 首页性能优化包括:项目结构、代码、布局、图片、动画等,优化完首页访问速度提高
1
倍 - 大屏适配:小于
2k
屏、2k
屏、4k
屏、 大于4k
屏 、16:9
、非16:9
等屏幕适配 - 公共图表组件封装、大大提高了开发效率和组件的复用度
- 制作了各种动画,包括
CSS3
、2D
、2.5D
、3D
、Canvas
、SVG
、SMIL
等炫酷动画特效
- 首页性能优化包括:项目结构、代码、布局、图片、动画等,优化完首页访问速度提高
- 亮点