

























好的,面对桌面(1920×1080)、手机(1080×2400像素,360dp基准)、户外100寸级大屏(15.36m×6.72m)这三种跨度极大的平台,传统的“一套固定列数网格打天下”已经完全失效。我们需要一套基于现代布局趋势的、能够根据观看距离和屏幕物理特性自适应弹性伸缩的栅格体系。
我们不定义全局列数,而是定义弹性轨道行为与空间基准令牌。核心策略:
repeat(auto-fit, minmax(最小列宽, 1fr)),让内容自己决定列数。设计画布:1920×1080,主要服务于距屏幕约50–70cm的桌面办公场景。
1440px,居中。用 min(100% - 64px, 1440px) 实现,保证小屏时左右各留32px。grid-template-columns: repeat(auto-fit, minmax(280px, 1fr))24pxgrid-template-columns: 2fr 1fr,放弃“占列数”概念。关键参数:
屏幕物理分辨率虽高,但逻辑像素基准为 360dp 宽(density=3)。设备距眼睛约30cm。
padding: 16dp 全局水平边距,内容宽度 328dp 自动撑满。grid-template-columns: repeat(auto-fit, minmax(152dp, 1fr))12dpcontainer-type 和 @container,不再依赖全局断点。关键参数:
这是最有挑战的部分。 物理尺寸巨大(宽高比约2.285:1),观看距离通常≥10m,需要完全不同的视觉尺度。设计时不能直接用桌面逻辑,而需要建立一套适合远距离读取的“展示型网格”。
户外LED屏通常由模组拼接,无标准逻辑分辨率。为了设计和开发统一,我们按比例画布处理:
3840 / (15.36/6.72) ≈ 1680px。远距离观看时,字号、间距、点击区域必须成倍放大。通常大屏设计遵循最小可读尺寸原则。假设视距15米,最小可见字号约40px(设计稿)。因此网格的最小列宽必须非常大,避免列太窄内容折行难看。
推荐弹性网格参数:
grid-template-columns: repeat(auto-fit, minmax(640px, 1fr))48px ~ 64px80~120px(物理上约30-40cm留白)这样在3840px宽容器中:
minmax(640px, 1fr) + 间隙64px:大约可容纳 5列((3840-80*2)/704 ≈ 5.2)。与桌面不同,大屏需要充分利用显示面积,但又不能无限拉伸文字行。更好的做法是将整体版面划分为固定比例的功能区域,内部再用弹性网格。
例如使用CSS Grid定义页面框架:
.dashboard-screen {
display: grid;
grid-template-columns: 2fr 1fr 1fr; /* 左大区域,右两个小区域 */
grid-template-rows: auto 1fr;
gap: 48px;
padding: 80px;
height: 100vh;
}
内部每个区域再嵌套自己的弹性卡片网格。这样既利用了超宽比例,又不会让单行文本拉成一条线。
沿用同一套命名,但赋予更大的值:
| 令牌 | 桌面(px) | 手机(dp) | 大屏(px) |
|---|---|---|---|
--space-md |
16 | 12 | 32 |
--space-lg |
24 | 16 | 48 |
--space-xl |
32 | 24 | 64 |
--space-2xl |
48 | 32 | 96 |
这样设计师在调整间距时,只需选择相同的Token,无需记忆数值。
对于大屏,设计师可以在3840×1680画布上拉一个16或20列、宽水槽的参考网格,但同样只是定位辅助。真正交付的是以功能区域和弹性卡片为单元的组件库。
在代码层面,利用CSS自定义属性和极少的媒体查询/环境变量即可管理这三套参数:
:root {
/* 默认桌面 */
--grid-min-col: 280px;
--grid-gap: 24px;
--page-padding: 32px;
--content-max: 1440px;
}
/* 手机端检测(可用媒体查询或JS添加类) */
body.mobile {
--grid-min-col: 152px;
--grid-gap: 12px;
--page-padding: 16px;
--content-max: 100%;
}
/* 大屏端(例如全屏展示的看板页) */
body.bigscreen {
--grid-min-col: 640px;
--grid-gap: 48px;
--page-padding: 80px;
--content-max: none;
}
所有网格组件统一使用:
.responsive-grid {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(var(--grid-min-col), 1fr));
gap: var(--grid-gap);
}
这样一套HTML结构,在三端自动呈现完全适配的列数和间距。
| 平台 | 设计画布 | 内容区/边距 | 弹性网格参数 | 间距主值 | 推荐设计辅助栅格 |
|---|---|---|---|---|---|
| 桌面 | 1920×1080 | 最大1440px居中,边距32px | minmax(280px,1fr) |
24px | 24列,水槽16px(可选) |
| 手机 | 360×780dp | 边距16dp,内容328dp | minmax(152dp,1fr) |
16dp | 4列,水槽16dp(可选) |
| 大屏 | 3840×1680 | 边距80px,无最大宽度 | minmax(640px,1fr) |
48-64px | 16列,水槽40px(可选) |
最重要的转变:这套系统的核心不是规定几列,而是规定最小列宽和间距。设计师在Figma中使用自动布局+换行模拟,开发人员用弹性网格实现。从桌面到手机再到大屏,整个产品只用一种网格语言,却能在任何观看距离下提供清晰、舒适的体验。
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。