378 lines
13 KiB
Markdown
378 lines
13 KiB
Markdown
# 门户页面边距统一改造说明
|
||
|
||
| 属性 | 内容 |
|
||
| --- | --- |
|
||
| 文档版本 | v1.0 |
|
||
| 创建日期 | 2026-05-19 |
|
||
| 状态 | 已确认,待开发 |
|
||
| 适用项目 | txw-mhzc-web |
|
||
| 关联需求 | 首页 / 服务中心 / 共性能力 / 企业出海 / 行业专题 五页边距统一 |
|
||
|
||
---
|
||
|
||
## 一、文档说明
|
||
|
||
### 1.1 目的
|
||
|
||
统一五个门户页面的版心宽度、左右留白(gutter)与区块上下间距,使各板块四向边距格式一致,降低维护成本,并保证桌面端与移动端视觉对齐。
|
||
|
||
### 1.2 读者
|
||
|
||
- 前端开发(实施改造)
|
||
- UI / 设计(验收对齐)
|
||
- 测试(回归用例)
|
||
|
||
### 1.3 飞书阅读说明
|
||
|
||
- 本文档使用标准 Markdown,可直接粘贴至飞书文档或导入。
|
||
- 表格、待办清单、引用块在飞书中可正常渲染。
|
||
- 代码块为 CSS / Less 片段,便于复制到工程。
|
||
|
||
---
|
||
|
||
## 二、已确认的设计决策
|
||
|
||
> **说明**:以下选项已与产品 / 需求方确认,开发阶段不得擅自变更;若需调整须更新本文档版本号。
|
||
|
||
| 编号 | 决策项 | 确认结果 |
|
||
| --- | --- | --- |
|
||
| A | 版心最大宽度 | **1300px**(对标政务站版心,`max-width` 非固定 `width`) |
|
||
| B | 桌面端左右边距(gutter) | **25px**(与政务站侧栏留白对齐) |
|
||
| C | 大区块上下内边距(section 级) | **64px**(原首页为 80px,需下调对齐) |
|
||
| D | 服务中心原 200px 大留白 | **改为版心 gutter(25px)**,通过 `page-content-wrap` 实现 |
|
||
| E | 首页三屏(核心驱动 / 共性能力 / 企业出海) | **保持 100vh 全屏**;仅统一标题区与内容区相对版心的 gutter |
|
||
| F | 改造范围 | **仅 5 个页面**,不含服务中心子市场页 |
|
||
| G | 文档与代码路径 | 说明文档:`public/docs/`;公共样式建议:`src/pages/index/styles/` |
|
||
| H | 语言 | **仅中文** |
|
||
|
||
---
|
||
|
||
## 三、设计 Token 规范
|
||
|
||
### 3.1 CSS 变量定义(建议)
|
||
|
||
新建文件:`src/pages/index/styles/page-layout.less`
|
||
|
||
```less
|
||
// 页面级布局 Token(门户五页共用)
|
||
:root {
|
||
--page-content-max-width: 1300px;
|
||
--page-gutter-x: 25px;
|
||
--page-section-padding-y: 64px;
|
||
--page-block-gap-y: 48px; // 区块内:标题 ↔ 内容
|
||
--page-block-margin-bottom: 64px; // 同级模块间距(锚点页多模块)
|
||
--page-banner-height: 350px;
|
||
--page-offset-top: 60px; // 固定顶栏下的安全区
|
||
}
|
||
```
|
||
|
||
### 3.2 响应式 Token
|
||
|
||
| 断点 | `--page-gutter-x` | `--page-section-padding-y` | 版心 |
|
||
| --- | --- | --- | --- |
|
||
| ≥ 1280px | 40px | 64px | `max-width: 1400px` |
|
||
| 768px ~ 1279px | 24px | 48px | `width: 100%` |
|
||
| < 768px | 16px | 40px | `width: 100%` |
|
||
|
||
媒体查询建议与首页 `home2` 现有断点协调,避免五页断点不一致。
|
||
|
||
### 3.3 内容区容器(标准写法)
|
||
|
||
**类名建议**:`.page-content-wrap`(全站门户页根级或 section 级复用)
|
||
|
||
```less
|
||
.page-content-wrap {
|
||
box-sizing: border-box;
|
||
width: 100%;
|
||
max-width: var(--page-content-max-width);
|
||
margin-left: auto;
|
||
margin-right: auto;
|
||
padding-left: var(--page-gutter-x);
|
||
padding-right: var(--page-gutter-x);
|
||
}
|
||
|
||
.page-section {
|
||
box-sizing: border-box;
|
||
padding-top: var(--page-section-padding-y);
|
||
padding-bottom: var(--page-section-padding-y);
|
||
}
|
||
```
|
||
|
||
**板块四向边距统一格式(流式内容区块)**:
|
||
|
||
```
|
||
上:64px(section-padding-y)
|
||
下:64px(section-padding-y)
|
||
左:40px(gutter-x)
|
||
右:40px(gutter-x)
|
||
版心:max-width 1400px,水平居中
|
||
```
|
||
|
||
### 3.4 全宽 Banner 与内容分离原则
|
||
|
||
| 类型 | 背景 | 内部文字 / 卡片 |
|
||
| --- | --- | --- |
|
||
| Banner / Hero 背景 | 宽度 100%,高度见 `--page-banner-height` | 文案、按钮包在 `.page-content-wrap` 内 |
|
||
| 内容板块 | 可选全宽背景色 / 图 | 主体必须使用 `.page-content-wrap` |
|
||
|
||
### 3.5 首页三屏(E1 专项规则)
|
||
|
||
以下三个 section **保持** `height: 100vh` 与现有绝对定位布局,**不改为**普通流式 section:
|
||
|
||
- `#section-core` 核心驱动
|
||
- `#section-capability` 共性能力(首页区块)
|
||
- `#section-overseas` 企业出海(首页区块)
|
||
|
||
**仅调整**:
|
||
|
||
1. 标题区(`.section-title` / `.capability-header` / `.overseas2-header`)左右对齐 gutter **40px**,移除 `margin-left: 40px` 等 hack。
|
||
2. 内容网格在版心 **1400px** 内水平居中,左右留白 **40px**。
|
||
3. `--block-title-top` 等内部变量可保留,但与 `--page-gutter-x` 对齐,避免重复偏移。
|
||
|
||
---
|
||
|
||
## 四、改造范围清单
|
||
|
||
### 4.1 纳入改造
|
||
|
||
| 序号 | 页面 | 路由 | 文件路径 |
|
||
| --- | --- | --- | --- |
|
||
| 1 | 首页 | `/home`(home2) | `src/pages/index/views/home2/index.vue` |
|
||
| 2 | 服务中心 | `/fwsc` | `src/pages/index/views/fwsc/index.vue` |
|
||
| 3 | 共性能力 | `/gxnlpt` | `src/pages/index/views/gxnlpt/index.vue` |
|
||
| 4 | 企业出海 | `/qych` | `src/pages/index/views/qych/index.vue` |
|
||
| 5 | 行业专题 | `/hyzt` | `src/pages/index/views/hyzt/index.vue` |
|
||
|
||
### 4.2 不纳入改造(首轮)
|
||
|
||
- `/tfwsc`、`/txqsc`、`/tsjsc`、`/tjrsc` 等服务中心子页
|
||
- 字体、配色、圆角、动效、业务逻辑
|
||
- 卡片内部 padding(如 `24px`、`28px`)除非与版心冲突
|
||
|
||
---
|
||
|
||
## 五、现状与目标对照
|
||
|
||
### 5.1 版心与 gutter
|
||
|
||
| 页面 | 现状 | 目标 |
|
||
| --- | --- | --- |
|
||
| 首页 | `1400px` + `40px`;三屏标题有 margin hack | 保持版心;section 上下 **80px → 64px**;清理 hack |
|
||
| 服务中心 | `padding: 60px 200px 80px` | `64px 40px 64px` + `.page-content-wrap` |
|
||
| 共性能力 | `1448px`,无统一 gutter | `1400px` + 左右 **40px** |
|
||
| 企业出海 | `width: 1300px` 固定 | `max-width: 1400px` + **40px** |
|
||
| 行业专题 | `width: 1300px` 固定 | `max-width: 1400px` + **40px** |
|
||
|
||
### 5.2 区块垂直间距
|
||
|
||
| 页面 | 现状(典型) | 目标 |
|
||
| --- | --- | --- |
|
||
| 首页 section | `80px 0` | `64px 0` |
|
||
| 服务中心 | `60px` 上 / `80px` 下 | `64px` 上下 |
|
||
| 共性能力 | 模块 `margin-bottom: 70px` | `64px`(`--page-block-margin-bottom`) |
|
||
| 企业出海 | `30px` 等零散值 | 模块间距 **64px** |
|
||
| 行业专题 | Banner `60px`、列表 `20px 0` | Banner 内容走 wrap;列表区 section **64px** |
|
||
|
||
---
|
||
|
||
## 六、分页面改造要点
|
||
|
||
### 6.1 首页(home2/index.vue)
|
||
|
||
**模板**
|
||
|
||
- 为 `.container` 下各 `<section>` 内容区统一包裹或复用 `.page-content-wrap`(已有 `.section-container` 可重命名或映射为同一套 Token)。
|
||
- 新闻、合作伙伴、底部 CTA 等流式区块与 core 系列共用 gutter。
|
||
|
||
**样式**
|
||
|
||
| 选择器 / 区域 | 操作 |
|
||
| --- | --- |
|
||
| `.section-container` | `max-width: 1400px`;`padding: 0 40px`(改为 CSS 变量) |
|
||
| `.core-section` 等 | `padding: 80px 0` → `padding: 64px 0` |
|
||
| `.news-section`、`.partner-section` | 同上 **64px** |
|
||
| `.core-section .section-title` 等 | 删除 `margin-left: 40px`;使用 `left` + `width: 100%` + `max-width` + `padding: 0 40px` |
|
||
| 移动端 `@media` | `16px` gutter 映射变量 |
|
||
|
||
**注意**:Hero(`#section-hero`)全宽保留;搜索区 `6%` / `10%` 可保留百分比,或评估是否改为 `40px`(需 UI 确认,默认 Hero 不强制改百分比)。
|
||
|
||
---
|
||
|
||
### 6.2 服务中心(fwsc/index.vue)
|
||
|
||
**模板**
|
||
|
||
- `.banner-content` 外包 `.page-content-wrap`。
|
||
- `.services-section` 内 `.services-grid` 已在 `1400px` 内,改为外层 section 使用统一 padding。
|
||
|
||
**样式**
|
||
|
||
| 选择器 | 现状 | 目标 |
|
||
| --- | --- | --- |
|
||
| `.services-section` | `padding: 60px 200px 80px` | `padding: 64px 0`;内部 wrap 负责左右 40px |
|
||
| `.banner-content` | `padding: 0 40px` | 并入 `.page-content-wrap` |
|
||
| 响应式 `@media` | `100px` / `40px` / `16px` 多级 | 统一为 **24px / 16px** 两档 |
|
||
|
||
**保留**:`margin-top: -120px` 卡片上浮效果(仅间距体系变化,不改视觉层级)。
|
||
|
||
---
|
||
|
||
### 6.3 共性能力(gxnlpt/index.vue)
|
||
|
||
**模板**
|
||
|
||
- `.gxnlpt-main` 增加 `portal-page` + `.page-content-wrap` 结构。
|
||
- 锚点 Tab 与 `#anchor-container` 同级置于 wrap 内。
|
||
|
||
**样式**
|
||
|
||
| 选择器 | 操作 |
|
||
| --- | --- |
|
||
| `.gxnlpt-main` | `max-width: 1448px` → `1400px`;增加左右 padding **40px** |
|
||
| `.gxnlpt-tab` | `margin-bottom: 70px` → **64px** |
|
||
| `.anchor-container-box` | `margin-bottom: 70px` → **64px** |
|
||
| `.body-main` | `padding-top: 60px` → 使用 `--page-offset-top` |
|
||
|
||
---
|
||
|
||
### 6.4 企业出海(qych/index.vue)
|
||
|
||
**模板**
|
||
|
||
- `.header-wrap`、`.top-nav`、各 `.module` 容器统一为 `.page-content-wrap`。
|
||
|
||
**样式**
|
||
|
||
| 选择器 | 操作 |
|
||
| --- | --- |
|
||
| `.header-wrap` | `width: 1300px` → `max-width: 1400px` + gutter |
|
||
| `.top-nav` | 同上 |
|
||
| `.content-wrapper2` 等 | `max-width: 1300px` → **1400px** + **40px** padding |
|
||
| `.header` | `padding-top: 120px` 保留或收敛为设计稿一致(与 Banner 视觉相关,不改高度 350px) |
|
||
| 模块间距 | 零散 `30px` → **64px**(`--page-block-margin-bottom`) |
|
||
|
||
---
|
||
|
||
### 6.5 行业专题(hyzt/index.vue)
|
||
|
||
**模板**
|
||
|
||
- Banner 内 `.word` 与 `.hyzt-list` 均使用 `.page-content-wrap`。
|
||
|
||
**样式**
|
||
|
||
| 选择器 | 操作 |
|
||
| --- | --- |
|
||
| `.banner .word` | `width: 1300px` → wrap + `max-width: 1400px` |
|
||
| `.hyzt-list` | `width: 1300px` → 100% + wrap |
|
||
| `.banner` | `padding: 60px 0` 可保留;左右由 wrap 提供 **40px** |
|
||
| `.hyzt-list-wrap` | 增加 section 级上下 **64px**(按视觉与背景图协调) |
|
||
|
||
---
|
||
|
||
## 七、工程实施步骤
|
||
|
||
### 7.1 阶段划分
|
||
|
||
| 阶段 | 任务 | 预估工时 |
|
||
| --- | --- | --- |
|
||
| P0 | 新增 `page-layout.less` 并在入口样式引入 | 0.5h |
|
||
| P1 | 改造 fwsc、hyzt、gxnlpt(结构相对简单) | 4h |
|
||
| P2 | 改造 qych(模块多、选择器多) | 4h |
|
||
| P3 | 改造 home2(三屏 + 响应式 + 清理 hack) | 6h |
|
||
| P4 | 三端走查 + 修复溢出 | 2h |
|
||
|
||
### 7.2 开发检查清单
|
||
|
||
- [ ] 创建 `page-layout.less` 并定义 Token
|
||
- [ ] 五页根节点增加 `portal-page` class(可选,便于 scoped 覆盖)
|
||
- [ ] 替换所有 `1300px` / `1448px` 固定宽为 `max-width: 1400px`
|
||
- [ ] 替换 `200px` / `100px` 等大留白为 Token
|
||
- [ ] 首页 section `80px` → `64px`
|
||
- [ ] 删除首页三屏标题 `margin-left` hack
|
||
- [ ] 响应式 gutter 24px / 16px 五页一致
|
||
- [ ] 1366px、1920px、768px、375px 无横向滚动条
|
||
|
||
### 7.3 引入方式示例
|
||
|
||
在 `src/pages/index` 入口或各页公共父级引入:
|
||
|
||
```less
|
||
@import '@/pages/index/styles/page-layout.less';
|
||
```
|
||
|
||
各页 scoped 样式中仅保留页面特有样式,版心相关改为:
|
||
|
||
```less
|
||
@import (reference) '@/pages/index/styles/page-layout.less';
|
||
// 或直接使用 .page-content-wrap / .page-section
|
||
```
|
||
|
||
---
|
||
|
||
## 八、测试与验收
|
||
|
||
### 8.1 验收标准
|
||
|
||
| 编号 | 标准 | 通过条件 |
|
||
| --- | --- | --- |
|
||
| AC-01 | 版心对齐 | 五页主内容区在 1920 屏宽下左右边缘对齐 |
|
||
| AC-02 | gutter | 桌面端内容距视口边缘均为 **40px**(通过 wrap 实现) |
|
||
| AC-03 | section 间距 | 流式大区块上下均为 **64px** |
|
||
| AC-04 | 首页三屏 | 仍为 100vh;标题与网格不贴边、无双重偏移 |
|
||
| AC-05 | 服务中心 | 无 200px 留白;卡片区域与首页视觉宽度一致 |
|
||
| AC-06 | 响应式 | 768px、375px 下 gutter 为 24px / 16px |
|
||
| AC-07 | 兼容性 | 1366px 宽度无横向滚动条 |
|
||
| AC-08 | 范围 | 子市场页样式无意外改动 |
|
||
|
||
### 8.2 测试用例(手工)
|
||
|
||
| 用例 ID | 页面 | 分辨率 | 操作 | 预期 |
|
||
| --- | --- | --- | --- | --- |
|
||
| TC-01 | 五页 | 1920×1080 | 打开首页并依次进入四入口 | 主内容左右对齐,无宽窄不一 |
|
||
| TC-02 | fwsc | 1920×1080 | 查看服务卡片区域 | 左右留白约 40px,非大留白 |
|
||
| TC-03 | home2 | 1920×1080 | 滚动三屏区块 | 每屏标题不漂移、不重复缩进 |
|
||
| TC-04 | 五页 | 1366×768 | 全页滚动 | 无横向滚动条 |
|
||
| TC-05 | 五页 | 768×1024 | 查看边距 | 左右约 24px |
|
||
| TC-06 | 五页 | 375×812 | 查看边距 | 左右约 16px |
|
||
| TC-07 | gxnlpt | 1920×1080 | 切换锚点模块 | 模块间距 64px,版心 1400px |
|
||
|
||
### 8.3 回归风险
|
||
|
||
> **警告**:服务中心由 200px 改为 40px 后,主内容视觉变宽,卡片可能更接近屏幕边缘,需在 1920 与 1366 下重点确认。
|
||
|
||
> **说明**:首页 section 由 80px 改为 64px 后,区块纵向更紧凑,若设计认为过密,需走变更流程调整 C 项决策。
|
||
|
||
---
|
||
|
||
## 九、附录
|
||
|
||
### 9.1 关键文件路径速查
|
||
|
||
```
|
||
txw-mhzc-web/
|
||
├── public/docs/page-layout-margin-refactor.md # 本文档
|
||
├── src/pages/index/styles/page-layout.less # 待新建
|
||
├── src/pages/index/views/home2/index.vue
|
||
├── src/pages/index/views/fwsc/index.vue
|
||
├── src/pages/index/views/gxnlpt/index.vue
|
||
├── src/pages/index/views/qych/index.vue
|
||
└── src/pages/index/views/hyzt/index.vue
|
||
```
|
||
|
||
### 9.2 变更记录
|
||
|
||
| 版本 | 日期 | 变更说明 | 作者 |
|
||
| --- | --- | --- | --- |
|
||
| v1.0 | 2026-05-19 | 根据需求确认 A1/B1/C2/D1/E1/F1 编写初版 | — |
|
||
|
||
---
|
||
|
||
## 十、后续行动
|
||
|
||
1. 开发按第七章 checklist 实施改造。
|
||
2. 测试按第八章用例验收。
|
||
3. 验收通过后更新本文档状态为「已上线」,并注明实际上线日期。
|
||
|
||
> **待办**:开发启动前由 UI 确认 Hero 区 `6%` / `10%` 是否纳入 gutter 统一(默认保留现状)。
|