---
id: "layout"
title: "页面容器与栅格"
category: "容器组件"
document_type: "component-specification"
spec_status: "local-current-draft"
element_ui: "2.15.6"
vue: "2.6.14"
page: "../index.html#spec-layout"
source_data: "../component-data.json"
official_components: ["container", "header", "aside", "main", "footer", "row", "col"]
template_components: []
scenario_count: 6
verification: "scenario-checklist-not-full-test-pass"
---

# 页面容器与栅格

专题 `layout` · 容器组件 · Element UI 2.15.6

## 适用范围与组件映射

公共色板及字体基线适用于整个运营后台。本库整理基础组件、组件状态和可复用的组合模式；本轮补齐表单整体验证、页面布局和导航组合；具体业务字段与跨页流程仍在业务场景中说明。专题验收清单包含接入要求，不表示当前示例已实现或已验证全部场景。

官方条目映射：`container`、`header`、`aside`、`main`、`footer`、`row`、`col`。

## 通用基线

- 组件库：Element UI **2.15.6**；运行样例 Vue **2.6.14**。
- 系统中文字体：macOS 优先苹方，Windows 通常微软雅黑；工程顺序固定为 `"PingFang SC", "Microsoft YaHei", sans-serif`。不要求安装或加载网络字体，兼容回退不是另一套可选样式。
- 后续仅采用经验证且固定版本的兼容 Element UI 2.x；Element Plus 属于独立迁移路线。
- 正文、数据值、输入及已选值：`14px / 400 / 21px`，`#303133`。
- 表头及组件分组标题：`14px / 600 / 21px`；弹窗标题：`16px / 600 / 24px`，均使用 `#303133`。
- 辅助说明：`12px / 400 / 18px`，`#595959`；错误、链接、状态、禁用与占位按各自语义处理。
- 适用组件的默认尺寸为 `small / 32px`；不得将这一高度机械应用于表格、文本域、浮层等全部组件。
- 规范正文与场景说明使用 `14px / 400 / 24px`、`#303133`，不降成灰蓝小字。
- 筛选文本输入占位统一“请输入”；未选择下拉统一“请选择”；默认全部的下拉显示“全部”。字段标签保留业务含义；日期保留开始/结束语义。
- 次级文字操作（查看更多、编辑、详情、数据中心、更多）：`12px / 400 / 18px`，`#3377BB`；保留点击热区。
- 本规范库的深色目录、蓝色展示区属于文档排版，不是业务组件颜色或业务导航规范。

## 本页用法与分类

默认用法：先按顶栏、导航、内容及必要底栏建立页面容器，再根据主内容关系选择两列或三列栅格；窄容器按顺序改为单列。

| 区分什么 | 本页内容 | 选用或触发条件 |
| --- | --- | --- |
| 页面区域（结构职责） | 顶栏、侧栏、主内容与底栏表达不同区域。 | 只保留页面确实需要的区域；内容卡片不冒充整个页面外壳。 |
| 栅格份数（内容布局） | 一行24份；12/12两列，8/8/8三列。 | 需要并排比较或同级概览时分栏；份数不是像素，也不规定输入框的绝对宽度。 |
| 间距与对齐（几何约束） | 相邻列间隔16px，列内两侧各承担8px。 | 承接行负边距并保持内容外边缘对齐，不重复叠加外距。 |
| 容器变化（环境条件） | 窄容器触发顺序换行，恢复后回到原分栏配置。 | 本例用576px阈值与400px预览检查收缩；真实业务断点继续使用原场景合同。 |

使用边界：不要把顶栏/侧栏、两列/三列、成功/错误状态列为同一级可选样式；结构示例不等于重新设计整个后台导航。

## 组件规则

- **LAYOUT-R01**：页面容器组织顶栏、侧栏、主内容和底栏；内容栅格决定同一内容区如何分栏。分别使用Element UI 2.15.6的el-container/header/aside/main/footer与el-row/col，不能把一块内容卡片、一个输入框宽度和整页栅格当成同一层尺寸。
- **LAYOUT-R02**：页面区域按真实职责保留。顶栏放全局信息，侧栏放模块导航，主内容承载当前模块，底栏只在页面需要底部信息时保留；不为了凑齐组件而每页都添加四块区域。示例用会员管理、资金管理和运营管理说明结构，不新增业务页面或路由。
- **LAYOUT-R03**：容器方向明确：含顶栏/底栏的一层纵向排列，侧栏与内容的一层横向排列；嵌套区域继续使用容器承接。主内容设置可收缩宽度，长内容在所属区域换行或按其表格/列表规范滚动，不能让侧栏挤出页面。
- **LAYOUT-R04**：栅格一行划分24份，12/12表示两等列，8/8/8表示三等列；这些数字是份数，不是像素。一行分配合计24，列间距统一16 CSS px。内容多少、是否需要并排比较决定分栏数量，不按颜色或图形偏好选择。
- **LAYOUT-R05**：宽度变化按可用容器决定。当前结构示例在可用宽度不足576px时改为24份单列，导航移到内容上方；这个阈值是演示配置，不取代真实中控外壳已确认的断点。官方xs/sm/md/lg/xl按视口响应，本例额外用容器宽度适配内嵌预览，不把两种判定混写。
- **LAYOUT-R06**：栅格gutter=16表示相邻列内容之间的空隙，组件通过两侧各8px列内距实现；外层对齐需抵消行负边距，不能因此使内容向外溢出。本例外层保留8px承接空间，不重复叠加16px外距。
- **LAYOUT-R07**：分栏只分配内容区域，不自动改变内部输入高度、圆角、字号或色值；字段宽度引用输入框专题，组件间距引用尺寸间距专题，标签切换引用页内标签专题。默认字体与公共色值不另起一套布局配色。
- **LAYOUT-R08**：结构示例的侧栏160px与主区最小160px高度仅为缩小预览保留可读空间，不是业务外壳统一尺寸。实际顶栏、侧栏、页脚和内容留白沿用业务场景的既有合同；布局规范不能以示例参数覆盖会员或报表页面。
- **LAYOUT-R09**：窄容器保持内容原顺序，导航仍可触达，不将关键信息隐藏成无法到达的区域；两列/三列切换只改变分栏，当前模块选择保留。布局是结构，不设置成功、失败或禁用色块，内部可操作入口才有对应状态。
- **LAYOUT-R10**：【公共用色】颜色仅从公共色值 引用：主色系 3 个基础色值、辅助功能色 3 个、中性色 10 个，共 16 个基础色值。角色可以多个，实际色值复用；不为每个组件、悬停 或不同字段再新增近似颜色。透明效果仅限遮罩 35% 与阴影 12%，从 外壳深色 派生。
- **LAYOUT-R11**：【统一字体】统一系统中文字体：macOS 优先苹方（PingFang SC），Windows 通常使用微软雅黑（Microsoft YaHei）；工程顺序固定为 "PingFang SC", "Microsoft YaHei", sans-serif。使用设备已有字体，不要求安装或加载网络字体；最后一项仅作兼容回退，不是供页面作者任选的另一套样式。正文 14px/400/21px；表头与分组标题 14px/600/21px，弹窗标题 16px/600/24px；次级文字操作和辅助说明 12px/400/18px。正文与标题同用 #303133；不通过额外加粗或透明度改变正文轻重。
- **LAYOUT-R12**：【叠加优先级】状态叠加规则：禁用阻断交互；输入类控件错误边框覆盖蓝色聚焦边框；输入框不叠加外圈或阴影，其他无边框操作保留键盘焦点提示；选中底覆盖悬停底；只读不等于禁用；加载不等于成功；业务启用/停用的文字结果不等于控件是否可点击。

## 场景与验收清单

以下为需核对的场景组；`[ ]` 不代表已经测试通过。

- [ ] **LAYOUT-S01**：当前示例：真实Container/Header/Aside/Main/Footer结构；模块按钮改变主内容说明，鼠标和键盘可操作，非真实业务跳转。
- [ ] **LAYOUT-S02**：当前栅格：两列12/12和三列8/8/8使用真实Row/Col；切换后列数量、份数及标题对应，列距16px。
- [ ] **LAYOUT-S03**：当前窄容器：400px切换或实际可用宽度不足576px时改成单列24份，导航置上；恢复宽度后恢复已选列数与模块。
- [ ] **LAYOUT-S04**：内容极值：长模块名、长说明与较大字体保持可读；行负边距没有向示例外溢出，列与主区允许收缩。
- [ ] **LAYOUT-S05**：状态：布局容器没有成功/失败皮肤；模块当前项只在真实选择后更新，键盘焦点可见且不改变栅格尺寸。
- [ ] **LAYOUT-S06**：接入验收：真实后台外壳的侧栏展开、全局导航、固定首尾、路由保持、页内滚动与短屏；当前结构示例不计为这些业务能力已经重做。

### 专题验收重点

切换三个模块后主内容标题与说明同步；在两列/三列之间切换分别使用12/12和8/8/8，窄容器统一24份并按原顺序换行。检查16px列距、行负边距承接、主区不横向溢出；切换布局不清空模块选择，文字与按钮尺寸不变。

## 当前示例模板

以下来自本专题的结构化示例，使用 Vue 2 模板语法。`v-model`、事件方法、数据列表等依赖 [components.js](../components.js)；完整样式文件及加载顺序见 [通用基线](FOUNDATIONS.md)。自定义组合标签的内部实现由下方依赖文件提供，不能仅复制标签作为完整组件。

```html
<official-layout-pattern>
</official-layout-pattern>
```

## 交付与使用边界

- 规范条款、示例代码与待验收场景分开理解；有示例不等于已覆盖所有样式、交互状态和使用场景。
- 业务接口、权限、时区、金额精度、数据规模等依赖应从实际项目读取，不使用演示值代替生产约定。
- 发生样式或文案变更时，同步专题数据、页面与 Markdown，避免规范和样例分离。

## 来源与关联

- 来源线索：Element UI官方Layout文档：https://github.com/ElemeFE/element/blob/dev/examples/docs/zh-CN/layout.md；Container文档：https://github.com/ElemeFE/element/blob/dev/examples/docs/zh-CN/container.md；本地vendor/element-ui-2.15.6.js/CSS的Container/Header/Aside/Main/Footer、Row/Col；official-form-layout.js/css。。
- [打开本专题页面](../index.html#spec-layout)
- [通用基线](FOUNDATIONS.md)
- [规范总索引](README.md)
- [结构化规范数据](../component-data.json)（记录 id：`layout`）
- [原始历史样板](../original-20260621.html)
- [历史规范条目](../spec-notes.json)

自定义示例 `official-layout-pattern` 的实现：[official-form-layout.js](../official-form-layout.js)。

## 本组件颜色状态表

| 状态 / 条件 | 统一规则 |
| --- | --- |
| 容器与分隔 | 主要区域白底，顶部辅助区可用浅灰背景；边界用边框灰、内部线用分隔灰，说明辅助深灰。 |
| 模块入口 | 普通入口正文深灰；鼠标悬停浅灰背景，实际当前模块选中浅蓝底与操作蓝文字；键盘保留操作蓝焦点。 |
| 栅格与窄容器 | 两列、三列和单列使用相同白底、边框及正文，不因份数或宽度不同增加配色。 |

页面容器和栅格没有独立加载、禁用或错误状态；反馈只属于区域内实际数据与动作，不把布局占位画成业务反馈。

[公共颜色与字体 token](../color-tokens.json) · [公共组件样式](../color-contract.css) · [系统字体合同（最后加载）](../font-contract.css)

## 业务落地场景

- [运营总览 · 公共顶栏、侧栏与内容分区](../../showcase/index.html#overview) · [场景文档](../../showcase/docs/overview.md)

[竞品组件拆解](../../reference-review/竞品组件反推规范.html) · [业务场景分类](../../业务场景分类清单.md)
