'use client'; import { Demo } from '@/components/Demo'; import { PropsTable } from '@/components/PropsTable'; import { Layout, Section, Article, Headline, BodyText } from '@newspaperui/components'; export default function GridSystemPage() { return (

栅格系统

NewspaperUI 采用 24 列栅格系统,提供灵活而精确的布局控制能力。

设计原理

24 列栅格系统借鉴了专业排版软件的设计思想,相比传统的 12 列��格��24 列提供了更细粒度的布局控制。 这使得我们可以实现更复杂的报纸风格布局,如 1/3、2/3、1/4、3/4 等多种列宽组合。

Layout 组件

Layout 是顶层容器组件,定义了整个页面的栅格系统。

{/* 内容 */} `} >
24 列栅格容器

Section 组件

Section 组件用于将 Layout 划分为多个区域,每个 Section 可以占据不同的列数。 Section 内的所有对象的 span 总和不能超过 Section 的 columns 值。

8 列区域 这个区域占据 8 列
16 列区域 - 左 这个区域占据 16 列,分为两个 8 列文章
16 列区域 - 右 第二个 8 列文章
`} >
8 列区域 这个区域占据 8 列,适合放置主要内容或大图。
16 列区域 - 左 这个区域占据 16 列,分为两个 8 列文章。
16 列区域 - 右 第二个 8 列文章,与左侧并排显示。

响应式栅格

在小屏设备上,栅格系统会自动调整为 12-16 列,确保内容在移动设备上也能良好显示。 你可以通过 CSS 媒体查询或响应式工具类来进一步控制不同屏幕尺寸下的布局。

6 列 小屏下可能变为全宽
6 列 自动适应屏幕
6 列 保持良好阅读体验
6 列 响应式布局

布局规则

  • Layout 的 columns 属性定义了整个页面的栅格总列数(默认 24)
  • Section 的 columns 属性必须 ≤ Layout 的 columns
  • Section 内所有对象的 span 总和必须 ≤ Section 的 columns
  • 对象可以通过 span 属性跨越多列
  • 小屏设备会自动调整为 12-16 列

最佳实践

  • 使用 24 列栅格可以实现 1/2、1/3、1/4、1/6、1/8 等多种比例
  • 主要内容区域建议使用 8-16 列
  • 侧边栏或次要内容使用 4-8 列
  • 重要内容可以跨越更多列以获得更大的视觉权重
  • 保持 Section 之间的列数比例协调,如 8:16、6:18、12:12 等
); }