【优化】:记一下前端页面大小适配的解决方式

96 阅读4分钟

前言:移动端和PC端的区别及页面样式设计的建议?

由于移动设备屏幕通常较小,交互方式以触摸为主,并且硬件性能和网络环境都有一定限制。因此,移动端页面需要更加简洁、直观并且响应快速,以满足用户在移动设备上的浏览需求。

而相比之下,PC端页面的屏幕较大,鼠标键盘操作更为常见,硬件性能和网络体验较好。因此,PC端页面可以设计更为复杂、丰富的交互和展示效果,更多地利用带宽和硬件资源,提供更为丰富的功能和体验。

在当前移动设备普及的情况下,移动优先设计的理念,即从移动端开始设计,然后再逐步拓展至PC端,将更有利于保证页面再移动端的可用性和性能。

移动优先设计的实现:在实际开发中,可以通过以下几点来实现移动优先设计

  1. 基于流式布局或者弹性网格布局,使得页面元素可以随着屏幕的大小进行自适应调整。
  2. 移动设备优先的CSS编写,利用媒体查询适配不同的屏幕尺寸,先为移动端编写css,再通过媒体查询为PC端添加样式。
  3. 图片可伸缩性处理,以适应不同分辨率的设备屏幕。
  4. 加载速度优化,减少不必要的资源请求,提高页面加载速度。

响应式设计

针对不同设备和屏幕尺寸提供最佳视觉和交互体验的设计方法。可通过css媒体查询、弹性网格布局和图片/媒体查询等技术,使得网页可以根据设备的不同特性自动调整布局和样式,从而适配不同的设备和屏幕。

1. css媒体查询

使用css媒体查询,让不同的屏幕尺寸应用不同的样式。

例如:在vue组件中,可以在样式部分使用媒体查询,使排版根据屏幕大小进行调整。

优点:

  • 简单易用,方便维护。
  • 可以根据不同的屏幕尺寸和设备类型应用不同的样式,实现精细化控制。

缺点:

  • 对于一些复杂的布局和样式调整,可能需要写较多的CSS代码。
  • 对于一些不支持CSS媒体查询的浏览器或设备,可能无法正确地应用样式。
2. 弹性网格布局:

使用弹性盒模型(Flexbox)布局,让页面元素在不同屏幕尺寸下自动排列和伸缩,提高页面的灵活性和适应性。

3. 百分比布局:

使用百分比来定义元素的宽度和高度,让元素在啊窗口大小发生变化时自动调整大小。

4. 使用特定的工具和框架

vscode插件:

  • flexible.js:用于动态设置<html>标签的font-size,从而根据屏幕宽度计算一个合适的font-size值,并将其应用到<html>标签上,所有使用rem单位的元素就能根据屏幕宽度自动调整大小。
  • PostCSS插件:如postcss-px-to-viewport等插件,可以自动将项目中的px单位统一转换为vw等单位,从而实现适配。
  • autojs:进行大屏的适配,实现缩放网页。但它只能放大或缩小页面(适合做大屏项目使用),不能让页面字体、div宽高等自动依据屏幕分辨率适配。
5. 其他方法
  • Viewport设置:通过设置<meta name="viewport" content="width=device-width, initial-scale=1.0">,可以控制设备的宽度、缩放比例、初始缩放状态等。
  • JavaScript动态调整:在代码中进行设备特性的检测,通过JavaScript获取设备的宽度、高度、像素比等信息,以便针对不同设备做出适配和优化。

总之,前端页面大小适配是一个综合性的任务,需要结合多种方法和技术手段来实现。在实际开发中,应根据项目的具体需求和目标用户群体的特点选择合适的适配方案。