---
id: "spacing"
title: "尺寸、间距、圆角与边框"
category: "基础视觉"
document_type: "component-specification"
spec_status: "local-current-draft"
element_ui: "2.15.6"
vue: "2.6.14"
page: "../index.html#spec-spacing"
source_data: "../component-data.json"
official_components: []
template_components: ["el-button", "el-input"]
scenario_count: 7
verification: "scenario-checklist-not-full-test-pass"
---

# 尺寸、间距、圆角与边框

专题 `spacing` · 基础视觉 · Element UI 2.15.6

## 适用范围与组件映射

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

本专题为基础规则、同一组件的补充场景或组合模式，不作为独立的 Element UI 官方组件声明。

本页模板直接使用的 Element UI 标签：`el-button`、`el-input`。

## 通用基线

- 组件库：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`；保留点击热区。
- 本规范库的深色目录、蓝色展示区属于文档排版，不是业务组件颜色或业务导航规范。

## 本页用法与分类

默认用法：常规适用控件默认32px；间距按内容关系选档，圆角按组件类型固定，输入族保持0px直角。

| 区分什么 | 本页内容 | 选用或触发条件 |
| --- | --- | --- |
| 尺寸 | 28/32/36/40px控件高度 | 32px为默认；28px限紧凑容器，36/40px用于有明确较大操作区需求的场景，同组保持一致。 |
| 间距 | 4/8/12/16/24/32px与按钮间10px | 按同行、说明、同组、分区关系采用；不把间距值当成控件高度。 |
| 组件形状 | 输入0px、按钮4px、对话框2px等 | 跟随组件约定；悬停、聚焦或选中时不换圆角。 |
| 状态边框 | 默认、聚焦、错误 | 由操作和校验触发，只改规定的颜色；边框宽度保持1px。 |

使用边界：这些数值不是一组选项供每个控件随意搭配；已明确的业务34px筛选容器等例外继续按原合同。

## 组件规则

- **SPACING-R01**：本规范的px均指CSS像素，用于网页布局；浏览器缩放、设备像素比和截图缩放会改变看到的大小。验收使用浏览器计算尺寸，不直接从缩放截图量像素。
- **SPACING-R02**：尺寸口径与输入宽度统一参考“输入框：宽度、只读与禁用”的宽度规则：区分字段整项和控件边框，按容器布局分配宽度；本专题不另建一套输入宽度档位。
- **SPACING-R03**：以4px为间距基础，常用4/8/12/16/24/32px。推荐分别用于紧密同行、附属提示、紧凑内容、同组内距、内容分区和较大分区；同类关系保持同档，已有组件内部尺寸按各自合同。
- **SPACING-R04**：分开的相邻按钮保留10px间距，不额外叠加margin与gap。连接成一体的按钮组按拼接规则处理，不套10px空隙。
- **SPACING-R05**：控件高度提供28/32/36/40px四档，含上下边框；本库常规默认32px，28px只用于明确的紧凑容器，同组不混高。示例以显式高度展示四档，正文保持14px/400，不通过缩字达到小尺寸。
- **SPACING-R06**：输入族统一0px直角；普通矩形按钮四档统一4px，圆形按钮和连接按钮组拼接处单独定义。当前对话框2px，确认框/下拉/日期面板/气泡/文字提示/内容卡片4px，贴边抽屉0px；文档装饰卡片不作为产品面板标准。
- **SPACING-R07**：基础边框1px #DCDFE6；输入聚焦1px #409EFF，错误1px #F56C6C并同步错误提示；内部细分隔1px #EBEEF5。状态变化不改变边框宽度、内距或控件尺寸。
- **SPACING-R08**：控件高度固定；输入宽度按输入框专题区分整项、边框与可用空间。窄容器先换行，长内容自然增高，不压缩字体、图标和点击区域。输入焦点只改自身边框；按钮和链接保留键盘焦点轮廓。
- **SPACING-R09**：【公共用色】颜色仅从公共色值 引用：主色系 3 个基础色值、辅助功能色 3 个、中性色 10 个，共 16 个基础色值。角色可以多个，实际色值复用；不为每个组件、悬停 或不同字段再新增近似颜色。透明效果仅限遮罩 35% 与阴影 12%，从 外壳深色 派生。
- **SPACING-R10**：【统一字体】统一系统中文字体：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；不通过额外加粗或透明度改变正文轻重。
- **SPACING-R11**：【叠加优先级】状态叠加规则：禁用阻断交互；输入类控件错误边框覆盖蓝色聚焦边框；输入框不叠加外圈或阴影，其他无边框操作保留键盘焦点提示；选中底覆盖悬停底；只读不等于禁用；加载不等于成功；业务启用/停用的文字结果不等于控件是否可点击。
- **SPACING-R12**：输入族统一直角 0px：普通输入、密码、文本域、自动补全、单选/多选触发框、级联、日期/时间与范围、数字输入及前后缀组合输入；默认/聚焦/错误/只读/禁用均不改变圆角。组合输入外侧和拼接处均不保留小圆角，弹出面板的圆角由面板规范独立定义。
- **SPACING-R13**：【容器与分隔】内容白底，边框使用边框灰，内部细分隔使用分隔灰；不同间距等级不增加不同底色。
- **SPACING-R14**：【输入族几何】输入及组合输入统一直角，默认/聚焦/错误/禁用都不改变圆角；聚焦只变原边框主题蓝，不增加外圈。
- **SPACING-R15**：【状态尺寸稳定】边框宽度和控件内距保持稳定，选中或错误不挤动内容；按钮按住下移1px仅按按钮专题执行。
- **SPACING-R16**：【组件边界】本专题是尺寸与几何约束；间距、圆角样本没有选中或加载状态，不将通用选择矩阵套给它。

## 场景与验收清单

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

- [ ] **SPACING-S01**：当前间距样例：六档浅蓝测量区宽度准确；相邻按钮外框间为10px，不因margin叠加变成20px。
- [ ] **SPACING-S02**：当前高度样例：实际按钮计算高度为28/32/36/40px，文字14px/400；点击只显示本地尺寸提示。
- [ ] **SPACING-S03**：当前圆角样例：输入与组合拼接处0px；普通矩形按钮含28px/32px均4px；面板按2px/4px/0px类型分别核对。
- [ ] **SPACING-S04**：当前边框样例：默认、聚焦、错误均1px；静态错误红边与红字一致，分隔线使用独立分隔灰。
- [ ] **SPACING-S05**：接入验收：输入默认/聚焦/错误/只读/禁用不改圆角；按钮保留键盘焦点且状态不改变宽高。
- [ ] **SPACING-S06**：窄容器与160%/200%缩放：卡片先换行，无页面级横向溢出；CSS尺寸不按截图像素直接推算。
- [ ] **SPACING-S07**：宽度联动验收：按输入框专题核对整项与边框口径、同组对齐、长内容、窄容器换行及状态不跳宽。

### 专题验收重点

用浏览器计算尺寸核对4/8/12/16/24/32px示意、按钮10px间距、四档28/32/36/40px高度与对应圆角；输入可聚焦且只有原边框。检查窄容器和160%/200%缩放可读取、可操作，静态边框图不当作交互通过证据。

## 当前示例模板

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

```html
<div class="geometry-pattern">
<section class="geometry-section">
<h4>先看懂px：这里说的是页面尺寸</h4>
<div class="geometry-unit">
<span class="geometry-pixel" aria-hidden="true">
</span>
<div class="geometry-unit-copy">
<p>左侧方块是16 × 16 CSS px。</p>
<p class="geometry-note">CSS px是网页排版单位。浏览器缩放或截图缩放会改变看到的大小，不能直接用截图像素反推组件尺寸。</p>
</div>
</div>
</section>
<section class="geometry-section">
<h4>常用间距：按关系远近选择</h4>
<p class="geometry-note">每组浅蓝色部分就是标注的间距；两边灰块只表示相邻内容。</p>
<div class="geometry-scale">
<div class="geometry-scale-item">
<span class="geometry-scale-label">4px</span>
<div class="geometry-gap-demo" style="--geometry-gap:4px" aria-hidden="true">
<span class="geometry-gap-anchor">
</span>
<span class="geometry-gap-measure">
</span>
<span class="geometry-gap-anchor">
</span>
</div>
<p class="geometry-note">同行紧密元素</p>
</div>
<div class="geometry-scale-item">
<span class="geometry-scale-label">8px</span>
<div class="geometry-gap-demo" style="--geometry-gap:8px" aria-hidden="true">
<span class="geometry-gap-anchor">
</span>
<span class="geometry-gap-measure">
</span>
<span class="geometry-gap-anchor">
</span>
</div>
<p class="geometry-note">主内容与附属提示</p>
</div>
<div class="geometry-scale-item">
<span class="geometry-scale-label">12px</span>
<div class="geometry-gap-demo" style="--geometry-gap:12px" aria-hidden="true">
<span class="geometry-gap-anchor">
</span>
<span class="geometry-gap-measure">
</span>
<span class="geometry-gap-anchor">
</span>
</div>
<p class="geometry-note">紧凑内容之间</p>
</div>
<div class="geometry-scale-item">
<span class="geometry-scale-label">16px</span>
<div class="geometry-gap-demo" style="--geometry-gap:16px" aria-hidden="true">
<span class="geometry-gap-anchor">
</span>
<span class="geometry-gap-measure">
</span>
<span class="geometry-gap-anchor">
</span>
</div>
<p class="geometry-note">同组内容内距</p>
</div>
<div class="geometry-scale-item">
<span class="geometry-scale-label">24px</span>
<div class="geometry-gap-demo" style="--geometry-gap:24px" aria-hidden="true">
<span class="geometry-gap-anchor">
</span>
<span class="geometry-gap-measure">
</span>
<span class="geometry-gap-anchor">
</span>
</div>
<p class="geometry-note">相邻内容分区</p>
</div>
<div class="geometry-scale-item">
<span class="geometry-scale-label">32px</span>
<div class="geometry-gap-demo" style="--geometry-gap:32px" aria-hidden="true">
<span class="geometry-gap-anchor">
</span>
<span class="geometry-gap-measure">
</span>
<span class="geometry-gap-anchor">
</span>
</div>
<p class="geometry-note">较大分区之间</p>
</div>
</div>
<p class="geometry-note">同类关系使用同一档；这是新组合的推荐间距，不强行改变已有组件内部明确的尺寸。</p>
<div class="geometry-divider-sample">
<strong>按钮组例外：间距10px</strong>
<div class="geometry-button-gap">
<el-button @click="notify('左侧按钮：本地间距演示')">操作一</el-button>
<el-button @click="notify('右侧按钮：本地间距演示')">操作二</el-button>
</div>
<p class="geometry-note">两个按钮外框之间为10px。连接为一体的按钮组另按拼接规则，不重复叠加间距。</p>
</div>
</section>
<section class="geometry-section">
<h4>四档控件高度：默认使用32px</h4>
<div class="geometry-size-list">
<div class="geometry-size-item">
<strong class="geometry-scale-label">28px · 紧凑</strong>
<div class="geometry-size-stage">
<el-button class="geometry-height-28" size="mini" @click="notify('这是28px高度的本地尺寸样例')">试用 28px</el-button>
</div>
<p class="geometry-note">仅用于明确的紧凑容器</p>
</div>
<div class="geometry-size-item">
<strong class="geometry-scale-label">32px · 常规</strong>
<div class="geometry-size-stage">
<el-button class="geometry-height-32" size="small" @click="notify('这是32px高度的本地尺寸样例')">试用 32px</el-button>
</div>
<p class="geometry-note">本库默认，常规后台操作</p>
</div>
<div class="geometry-size-item">
<strong class="geometry-scale-label">36px · 中等</strong>
<div class="geometry-size-stage">
<el-button class="geometry-height-36" size="medium" @click="notify('这是36px高度的本地尺寸样例')">试用 36px</el-button>
</div>
<p class="geometry-note">需要稍大操作区域时</p>
</div>
<div class="geometry-size-item">
<strong class="geometry-scale-label">40px · 标准</strong>
<div class="geometry-size-stage">
<el-button class="geometry-height-40" @click="notify('这是40px高度的本地尺寸样例')">试用 40px</el-button>
</div>
<p class="geometry-note">空间充足的独立操作区</p>
</div>
</div>
<p class="geometry-note">高度包含上下边框，字体保持14px/400。这些按钮只显示尺寸提示；实际同一按钮组不混用四种高度，窄屏先换行。</p>
</section>
<section class="geometry-section">
<h4>圆角：按组件形状分别约定</h4>
<div class="geometry-radius-grid">
<div class="geometry-radius-item">
<label for="geometry-rect-input">输入族：0px直角</label>
<el-input id="geometry-rect-input" v-model="inputText" placeholder="点击或用键盘进入" label="直角输入框样例">
</el-input>
<p class="geometry-note">可输入。聚焦只改自身边框，不会增加第二层外框。</p>
</div>
<div class="geometry-radius-item">
<strong>普通矩形按钮：4px</strong>
<el-button @click="notify('普通矩形按钮使用4px圆角')">按钮圆角示例</el-button>
<p class="geometry-note">四档高度统一。圆形按钮、连接按钮组的拼接处单独定义。</p>
</div>
</div>
<div class="geometry-panel-list">
<div>
<div class="geometry-panel-sample geometry-panel-dialog">对话框 · 2px</div>
<p class="geometry-note">当前对话框外形，静态圆角示意。</p>
</div>
<div>
<div class="geometry-panel-sample geometry-panel-popover">常用浮层与卡片 · 4px</div>
<p class="geometry-note">确认框、下拉、日期面板、气泡、文字提示和内容卡片。</p>
</div>
<div>
<div class="geometry-panel-sample geometry-panel-drawer">抽屉 · 0px</div>
<p class="geometry-note">贴边容器，静态圆角示意。</p>
</div>
</div>
<p class="geometry-note">这里记录产品组件实际外形。规范页装饰卡片不作为产品面板标准，不能统一写成“面板6px”。</p>
</section>
<section class="geometry-section">
<h4>边框：宽度不变，用颜色表达状态</h4>
<p class="geometry-note">以下是静态边框示意；可操作聚焦效果见上方输入框，完整校验见“错误说明、必填与输入校验”。</p>
<div class="geometry-border-grid">
<div class="geometry-border-card">
<strong>默认 · 1px边框灰</strong>
<div class="geometry-border-sample">请输入内容</div>
<p class="geometry-note">#DCDFE6，白底，0px圆角。</p>
</div>
<div class="geometry-border-card">
<strong>聚焦 · 1px主题蓝</strong>
<div class="geometry-border-sample is-focus">请输入内容</div>
<p class="geometry-note">#409EFF，不加粗，不叠加外圈。</p>
</div>
<div class="geometry-border-card">
<strong>错误 · 1px错误红</strong>
<div class="geometry-border-sample is-error">请输入内容</div>
<p class="geometry-note is-error">请输入内容</p>
</div>
</div>
<div class="geometry-divider-sample">内部内容分隔：1px #EBEEF5</div>
<p class="geometry-note">上方细线只分隔内容。错误边框和错误提示一起变化；不增减边框宽度，避免内容跳动。按钮和链接的键盘焦点轮廓继续保留。</p>
</section>
</div>
```

## 交付与使用边界

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

## 来源与关联

- 来源线索：本地vendor/element-ui-2.15.6.css、components.css、input-contract.css、button-contract.css及geometry-patterns.css；产品面板实际圆角与文档装饰容器分别记录。。
- [打开本专题页面](../index.html#spec-spacing)
- [通用基线](FOUNDATIONS.md)
- [规范总索引](README.md)
- [结构化规范数据](../component-data.json)（记录 id：`spacing`）
- [原始历史样板](../original-20260621.html)
- [历史规范条目](../spec-notes.json)

## 本组件颜色状态表

| 状态 / 条件 | 统一规则 |
| --- | --- |
| 容器与分隔 | 内容白底，边框使用边框灰，内部细分隔使用分隔灰；不同间距等级不增加不同底色。 |
| 输入族几何 | 输入及组合输入统一直角，默认/聚焦/错误/禁用都不改变圆角；聚焦只变原边框主题蓝，不增加外圈。 |
| 状态尺寸稳定 | 边框宽度和控件内距保持稳定，选中或错误不挤动内容；按钮按住下移1px仅按按钮专题执行。 |

本专题是尺寸与几何约束；间距、圆角样本没有选中或加载状态，不将通用选择矩阵套给它。

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

## 业务落地场景

- [会员列表 · 筛选控件、表格与详情的尺寸间距](../../showcase/index.html#members) · [场景文档](../../showcase/docs/members.md)

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