常见的网页布局类型:适配不同页面场景的实用布局样式
刚入行做网页复刻工作的时候,每次拿到设计图都一头雾水,完全分不清适配方案,搞不懂常见的网页布局类型有哪些,经常照着图瞎写样式,要么页面适配错乱,要么结构冗余一堆,改代码的时间比写代码的时间还长。后来连着接手了十几个企业官网、资讯页面、产品展示页的项目,一点点摸透了各类布局的适配场景,也踩遍了每种布局的适配漏洞,慢慢摸清了日常开发里最常用的几种网页布局。
最开始一直死磕固定布局,这是新手最容易上手也最容易用错的布局方式。固定布局就是给网页容器设置固定的像素宽度,不管电脑屏幕、手机屏幕大小怎么变,页面尺寸都不会改动。之前做一个企业官网首页,直接给主体框定了1200px固定宽度,电脑端打开看着完全正常,部署上线后才发现,小尺寸笔记本打开页面会出现横向滚动条,手机端更是直接溢出,内容挤成一团,完全没法浏览。也是这次出错才记住,固定布局只适合老旧静态页面、后台管理固定工作台页面,绝对不适合做需要多端适配的前端页面。
然后接触的是流式布局,也叫百分比布局,算是解决固定布局适配问题的基础方案。摒弃了固定像素,把页面所有模块的宽高都设置为百分比数值,让页面可以跟着浏览器窗口大小自动缩放。刚开始用的时候觉得特别好用,页面不会再出现溢出滚动的情况,不管怎么拉伸窗口,内容都能贴合屏幕。但用久了就发现短板特别明显,屏幕过大的时候,页面元素会被无限拉伸,文字间距、图片比例全部失调,大屏电脑打开页面空空荡荡,观感极其松散。这种布局现在大多只用在简单的图文资讯页,不会单独用在完整的官网和功能页面里。
弹性布局是我现在日常开发里用得最多的类型,兼容性和实用性都刚刚好。依靠flex属性实现页面元素的自动排列、自适应拉伸和居中对齐,不用繁琐的浮动清除代码,就能轻松实现导航栏、卡片列表、图文模块的整齐排布。前段时间做产品展示页面,用弹性布局排布产品卡片,自动适配不同屏幕,卡片自动换行、均分间距,不用写大量媒体查询代码,页面代码简洁很多。它的适配性比流式布局稳定太多,也是目前中小型网页、功能模块的主流布局方式。
还有网格布局,算是比较进阶的布局样式,专门用来做规整的多列内容排版。之前做过一个素材展示网站,页面需要整齐排布数十张图片和对应文字介绍,一开始用弹性布局写,行列对齐总是有偏差,间距很难统一。换成网格布局之后,直接定义好行列数量和间距,所有内容自动规整排列,整体排版整齐统一,不用逐个调整单个模块样式。只不过网格布局针对性很强,只适合规整的矩阵式排版,导航栏、详情页这类不规则模块用它反而会显得繁琐。
最后就是自适应布局,算是兼顾所有场景的综合性布局方式。它不会单一使用一种样式,而是通过媒体查询,根据不同屏幕尺寸,切换不同的页面布局结构。手机端单列排版、平板端双列排版、电脑端多列排版,不同设备对应不同的结构样式。之前给一个电商页面做适配,单纯用弹性布局无法兼顾超大屏和移动端的观感,改用自适应布局后,不同设备都能呈现最优的页面结构,用户浏览体验提升特别明显。
现在做页面开发,不会再单一套用某一种布局,拿到设计图先判断页面用途和适配设备,再搭配对应的布局类型。刚刚整理完当前项目的页面布局适配方案,接下来准备把所有常用布局的适配参数统一整理成本地代码片段,后续开发可以直接复用调试。