CSS 盒模型模块 第4级

W3C 工作草案,

关于本文件的更多信息
此版本:
https://www.w3.org/TR/2024/WD-css-box-4-20240804/
最新发布版本:
https://www.w3.org/TR/css-box-4/
编辑草案:
https://drafts.csswg.org/css-box-4/
以前的版本:
历史:
https://www.w3.org/standards/history/css-box-4/
反馈:
CSS 工作组问题存储库
规范内问题
编辑:
Elika J. Etemad / fantasai (苹果)
建议编辑此规范:
GitHub 编辑器

摘要

本规范描述了创建 CSS 盒子内外间距的 margin 和 padding 属性。 以后可能会扩展以包含边框(当前描述在 [css-backgrounds-3])。

CSS 是一种用于描述结构化文档(如 HTML 和 XML)在屏幕、纸张等介质上呈现的语言。

本文件的状态

本节描述了本文档在发布时的状态。 当前 W3C 出版物列表 和本技术报告的最新修订版 可在 W3C 技术报告索引 https://www.w3.org/TR/ 中找到。

本文档由 CSS 工作组 作为 工作草案 发布, 使用 推荐流程。 发布为工作草案 并不意味着 W3C 及其成员的认可。

这是一个草案文件, 可能会随时更新、替换或废止其他文件。 除了作为正在进行的工作外,引用此文档是不合适的。

请通过 在 GitHub 上提交问题(优先)发送反馈, 包括规范代码“css-box”在标题中,如: “[css-box] …评论摘要…”。 所有问题和评论均 存档。 或者,反馈可以发送到(存档)公共邮件列表 www-style@w3.org。

本文档受 2023年11月3日 W3C 流程文件 管辖。

本文件由根据 W3C 专利政策 运营的小组制作。 W3C 维护了与该小组的交付物相关的任何专利披露的 公开列表; 该页面还包括披露专利的说明。 如果个人掌握了个人认为包含 基本专利声明 的专利, 必须根据 W3C 专利政策第6节 披露信息。

1. 简介

本小节不具规范性。

CSS 描述了源文档中的每个元素和每个文本字符串如何通过将 元素树 转换为一组 盒子,这些盒子的大小、位置和在 画布 上的堆叠层级取决于它们的 CSS 属性值。

注意: CSS 级联与继承 描述了如何将属性分配给盒子树中的元素, 而 CSS Display 3 § 1 简介 描述了如何将 元素树 转换为 盒子树。

每个 CSS 盒子 都有一个矩形内容区域,内容周围有一层内边距,内边距周围有一个边框,边框外部有一个外边距。尺寸属性 与其他控制布局的属性一起定义了内容区域的大小。盒子样式属性—内边距 及其长属性,边框 及其长属性, 和 外边距 及其长属性—定义了这些其他区域的大小。外边距和内边距在本模块中定义,边框在 [css-backgrounds-3] 中定义。

注意: 本模块 最初包含 了与盒子生成(现在在 [css-display-3] 中定义)相关的 CSS 第3级规范文稿,盒模型(在这里定义),以及块布局(现在只在 [CSS2] 第9章和第10章中定义)。由于在 CSS2.1 的开发过程中暂停了其维护,该文稿在 CSS2 第1次修订最终完成时已严重过时。因此,块布局部分的文稿已被退役,计划将其与 CSS2 同步并更新,作为未来块布局模块的输入。它将与本模块和 CSS Display 模块 分离,既因为工作量巨大,也因为认识到 CSS 现在有多种布局模型(弹性布局、网格布局、定位布局 和 表格布局,此外还有块布局),每个模型都值得拥有各自的平行模块。

1.1. 值的定义

本规范遵循 CSS 属性定义惯例,并使用 值定义语法。[CSS-VALUES-3]。本规范中未定义的值类型在 CSS 值与单位 [CSS-VALUES-3] 中定义。与其他 CSS 模块结合时,可能会扩展这些值类型的定义。

除了在其定义中列出的特定属性值外,所有本规范中定义的属性也接受 CSS 通用关键字 作为其属性值。为了提高可读性,未显式重复这些关键字。

1.2. 模块交互

本模块替代了 [CSS2] 第8.1、8.2、8.3(但不包括8.3.1)和8.4节中定义的外边距和内边距属性的定义。

本模块中的所有属性适用于 ::first-line 和 ::first-letter 伪元素。

2. CSS 盒模型

每个盒子都有一个 内容区域 (它包含其内容—文本、子盒子、图像或其他 替换元素 内容等), 以及可选的 内边距、边框 和 外边距区域; 每个区域的大小由相应的属性指定,可以为零(在外边距的情况下,可以为负值)。 下图展示了这些区域之间的关系以及用于指代盒子各部分的术语:

典型盒子的示意图,显示了内容、内边距、边框和外边距区域

典型盒子的各个区域和边缘。

盒子的内容、内边距和边框区域的背景由其 背景 属性指定。 边框区域可以通过使用 边框 属性来绘制边框样式。 外边距始终是透明的。 参见 [css-backgrounds-3]。

外边距、边框和内边距可以分为上、右、下和左段,每个段都可以通过相应的属性独立控制。

2.1. 盒子与边缘

每个区域(内容、内边距、边框和外边距)的周边被称为 边缘,每个 边缘 可以分为上、右、下和左侧。 因此,每个 盒子 有四个 边缘,每个边缘由四个侧面组成:

内容边缘 或 内边缘
内容边缘包围着盒子的宽度和高度所定义的矩形, 它通常取决于元素的内容和/或其 包含块 的大小。 内容边缘 的四个侧面共同定义了盒子的 内容盒子。
内边距边缘
内边距边缘包围着盒子的内边距。 如果内边距在某一侧的宽度为零, 则该侧的内边距边缘与内容边缘重合。 内边距边缘 的四个侧面共同定义了盒子的 内边距盒子, 它包含了 内容 和 内边距区域。
边框边缘
边框边缘包围着盒子的边框。 如果某一侧的边框宽度为零, 则该侧的边框边缘与内边距边缘重合。 边框边缘 的四个侧面共同定义了盒子的 边框盒子, 它包含了盒子的 内容、内边距 和 边框区域。
外边距边缘 或 外边缘
外边距边缘包围着盒子的外边距。 如果某一侧的外边距宽度为零, 则该侧的外边距边缘与边框边缘重合。 外边距边缘 的四个侧面共同定义了盒子的 外边距盒子, 它包含了盒子的所有 内容、内边距、边框 和 外边距区域。

类似 border-radius 这样的属性可以改变盒子的 边缘 形状,用于绘制和裁剪(参见 CSS Backgrounds 3 § 4.3 角裁剪); 但这些效果通常不会影响布局。 规范可以区分相关的 形状边缘 或 非形状边缘。

2.2. 分割

当一个盒子 发生分割时—​即跨行或跨页被打断为多个 盒子片段—​其所有的盒子 (内容盒子、内边距盒子、边框盒子、外边距盒子) 也会被分割。 内容/内边距/边框/外边距区域如何应对分割在 [css-break-4] 中规定,并由 box-decoration-break 属性控制。

2.3. 盒子边缘关键字

以下 <box> CSS 关键字定义用于那些需要引用不同盒子边缘的属性(例如 transform-box 和 background-clip):

content-box
指的是 内容盒子 或 内容边缘。 (在 SVG 环境中,被视为 fill-box。)
padding-box
指的是 内边距盒子 或 内边距边缘。 (在 SVG 环境中,被视为 fill-box。)
border-box
指的是 边框盒子 或 边框边缘。 (在 SVG 环境中,被视为 stroke-box。)
margin-box
指的是 外边距盒子 或 外边距边缘。 (在 SVG 环境中,被视为 stroke-box。)
fill-box
指的是 对象边界盒子 或其边缘。 (在 CSS 盒子环境中,被视为 content-box。)
stroke-box
指的是 描边边界盒子 或其边缘。 (在 CSS 盒子环境中,被视为 border-box。)
view-box
指的是最近的 SVG 视口 的 原点盒子, 该矩形的宽度和高度与 SVG 视口 相同, 其左上角锚定在坐标系原点。 (在 CSS 盒子环境中,被视为 border-box。)

注意: 当 SVG 视口 本身并未锚定在原点时, 此 原点盒子 实际上并不对应 SVG 视口!

为了方便起见,定义了以下值类型以表示常用的 <box> 的子集:

<visual-box> = content-box | padding-box | border-box
<layout-box> = <visual-box> | margin-box
<paint-box> = <visual-box> | fill-box | stroke-box
<coord-box> = <paint-box> | view-box

3. 外边距

外边距 包围着盒子的边框边缘, 为盒子之间提供间距。 外边距属性 指定盒子的 外边距区域 的厚度。 外边距 速记属性 设置所有四个边的外边距, 而外边距的 长属性 只设置其各自的边。 本规范定义了 物理 外边距 长属性;CSS 逻辑属性 1 § 4.2 流相对外边距:外边距块起始、外边距块结束、外边距内联起始、外边距内联结束属性和外边距块与外边距内联速记属性 另外 定义了 流相对 外边距 长属性。 两组属性控制相同的外边距: 它们只是索引每个边的不同方式。

注意: 在 块布局 中相邻的外边距会 折叠。 详情参见 CSS2§8.3.1 折叠的外边距。 此外,某些情况下,邻接的外边距会在 分割断点 处被截断。 详情参见 CSS 分割 4 § 5.2 断点处的相邻外边距:外边距断点属性。

3.1. 页面相对(物理)外边距属性:外边距上、外边距右、外边距下 和 外边距左 属性

名称: margin-top, margin-right, margin-bottom, margin-left
值: <length-percentage> | auto
初始值: 0
适用于: 除内部表格元素、注音基文容器和注音标注容器之外的所有元素
继承: 否
百分比: 相对于包含块的逻辑宽度
计算值: 关键字 auto 或计算后的 <length-percentage> 值
规范顺序: 按照语法
动画类型: 按计算值类型
逻辑属性 组: margin

这些属性分别设置盒子的上、右、下、左外边距。

外边距属性允许使用负值, 但可能存在特定于实现的限制。

3.2. 外边距速记:外边距 属性

名称: 外边距
值: <'margin-top'>{1,4}
初始值: 0
适用于: 除 内部表格元素、ruby 基本容器 和 ruby 注解容器 之外的所有元素
是否继承: 否
百分比: 参考包含块的 逻辑宽度
计算值: 参见各个属性
规范顺序: 按照语法
动画类型: 按计算值类型

外边距 属性是用于同时设置 外边距上、外边距右、外边距下 和 外边距左 的速记属性。

如果只有一个值, 则应用于所有边。 如果有两个值, 第一个值用于上、下外边距, 第二个值用于左、右外边距。 如果有三个值, 第一个值用于上外边距, 第二个值用于左、右外边距, 第三个值用于下外边距。 如果有四个值, 它们分别应用于上、右、下、左外边距。

以下代码展示了一些可能的 外边距 声明。
body { margin: 2em }         /* 所有外边距设为 2em */
body { margin: 1em 2em }     /* 上 & 下 = 1em,左 & 右 = 2em */
body { margin: 1em 2em 3em } /* 上=1em,右=2em,下=3em,左=2em */

上述示例中的最后一个规则等价于以下示例:

body {
  margin-top: 1em;
  margin-right: 2em;
  margin-bottom: 3em;
  margin-left: 2em; /* 从对面侧(右侧)复制 */
}

3.3. 容器边缘的外边距修剪:margin-trim 属性

名称: margin-trim
值: none | [ block || inline ] | [ block-start || inline-start || block-end || inline-end ]
初始值: none
适用于: 块容器、多列容器、弹性容器、网格容器
是否继承: 否
百分比: 不适用
计算值: 表示修剪哪些边的零到四个关键字的集合
规范顺序: 按照语法
动画类型: 离散

通常希望在兄弟元素之间设置外边距, 但不希望在容器的起始/结束处设置外边距, 这时可以通过内边距来控制间距。 该属性允许容器修剪其子元素的外边距, 使其与容器的边缘相邻。其值的含义如下:

none
容器不修剪外边距。

注意: 但是,在块布局中, 子元素的外边距可以与其父元素折叠。 参见 CSS2§8.3.1:折叠的外边距。

block-start
inline-start
inline-end
block-end
对于由此容器包含的流内盒子, 与容器指定边相邻的外边距被修剪为零。 它还会修剪与此类外边距折叠的任何后代外边距 (但不会修剪其自身、兄弟或祖先的外边距)。
block
计算为 block-start block-end。
inline
计算为 inline-start inline-end。

注意: 遵循最短序列化原则,等效于 计算值 的值将序列化为 block 或 inline 这些关键字。

相邻关系不受盒子对齐规则([CSS-ALIGN-3])控制的空间影响, 并忽略折叠的盒子(参见 CSS 弹性盒子布局 1 § 4.4 折叠的项目) 和轨道(CSS 网格布局 1 § 7.2.3.2 重复填充:自动填充和自动适配)。

注意: 另请参阅 margin-break 属性, 该属性适用于当外边距与 分割断点(分页符 / 分栏符 / 等)相邻时盒子的外边距。

需要定义该属性 在盒子创建 分割上下文 时如何影响断点处的外边距。 参见 问题 3314。

注意: 当在 块容器 上指定时,此属性对浮动元素的外边距没有影响; 本模块的未来版本可能会为浮动元素引入特定的控制项。

3.3.1. 修剪块容器内容

对于 块容器,margin-trim 会丢弃以下内容:

它不会影响 行内轴 外边距(对于 块级 后代而言), 也不会影响任何外边距(对于 行内级 后代而言)。

3.3.2. 修剪弹性容器内容

对于 弹性容器 这一特定情况, margin-trim 会丢弃

此过程忽略所有 已折叠的弹性项。

3.3.3. 修剪网格容器内容

对于 网格容器,margin-trim 会丢弃每个网格项目在与相关盒子边缘相邻的 网格轨道上的相应外边距。

此过程忽略任何 折叠的网格轨道。 但不会忽略任何其他空的 网格轨道。

4. 内边距

内边距 插入在盒子的内容边缘 和内边距边缘之间, 为内容与边框之间提供间距。 内边距属性 指定盒子的 内边距区域 的厚度。 内边距 速记属性 设置所有四个边的内边距, 而内边距的 长属性 仅设置其各自的边。 本规范定义了 物理 内边距 长属性;CSS 逻辑属性 1 § 4.4 流相对内边距:内边距块起始、内边距块结束、内边距内联起始、 内边距内联结束属性和内边距块与内边距内联速记属性 另外定义了 流相对 内边距 长属性。 两组属性控制相同的内边距: 它们只是索引每个边的不同方式。

注意: 盒子上指定的背景 默认情况下在内边距边缘内布局并绘制。 (它们还会在边框下方绘制, 在 边框区域 内。) 此行为可以通过使用 background-origin 和 background-clip 属性进行调整。

4.1. 页面相对(物理)内边距属性: padding-top、 padding-right、 padding-bottom,以及 padding-left 属性

名称: padding-top, padding-right, padding-bottom, padding-left
值: <length-percentage [0,∞]>
初始值: 0
适用于: 所有元素,以下元素除外: 内部表格元素(表格单元格除外)、 ruby 基底容器,以及 ruby 注解容器
继承: 否
百分比: 参照 逻辑宽度,以包含块为准
计算值: 计算所得的 <length-percentage> 值
规范顺序: 按语法
动画类型: 按计算值类型
逻辑属性 组: padding

这些属性设置上、右、下和左侧的 内边距,作用于一个 盒,并按上述顺序分别对应。

内边距属性的负值无效。

4.2. 内边距速记:内边距 属性

名称: 内边距
值: <'padding-top'>{1,4}
初始值: 0
适用于: 除 内部表格元素(不包括表格单元格)、ruby 基本容器 和 ruby 注解容器 之外的所有元素
是否继承: 否
百分比: 参考包含块的 逻辑宽度
计算值: 参见各个属性
规范顺序: 按语法
动画类型: 按计算值类型

内边距 属性是一个速记属性,用于同时设置 内边距上、内边距右、内边距下 和 内边距左 的属性声明。

如果只有一个值, 则应用于所有边。 如果有两个值, 第一个值用于上、下内边距, 第二个值用于左、右内边距。 如果有三个值, 第一个值用于上内边距, 第二个值用于左、右内边距, 第三个值用于下内边距。

以下代码展示了一些可能的 内边距 声明。
body { padding: 2em }         /* 所有内边距设为 2em */
body { padding: 1em 2em }     /* 上 & 下 = 1em,左 & 右 = 2em */
body { padding: 1em 2em 3em } /* 上=1em,右=2em,下=3em,左=2em */

上述示例中的最后一个规则等价于以下示例:

body {
  padding-top: 1em;
  padding-right: 2em;
  padding-bottom: 3em;
  padding-left: 2em; /* 从对面侧(右侧)复制 */
}

5. 边框

边框 填充了 边框区域, 用以视觉上划定盒子的边界。 边框属性 指定了盒子的 边框区域 的厚度, 以及其绘制样式和颜色。 请参阅 CSS 背景 3 § 3 边框 以获取这些属性物理变体的定义;CSS 逻辑属性 1 § 4.5 流相对边框 另外定义了 流相对 的边框 长属性。 两组属性控制相同的边框: 它们只是索引每个边的不同方式。

6. 最近的变更

自 2024年4月1日工作草案 以来的变更包括:

自 2022年11月3日工作草案 以来的变更包括:

7. 自 CSS 第 3 级以来的更改

自 第 3 级 以来,本模块进行了以下更改:

8. 自 CSS 第 2 级以来的更改

自 第 2 级 以来,本模块进行了以下更改:

9. 隐私 考虑

本模块未报告隐私考虑事项。

10. 安全性考虑

本模块未报告安全性考虑事项。

一致性

文档约定

一致性要求通过描述性断言和 RFC 2119 术语的组合表达。关键字 “MUST”、“MUST NOT”、“REQUIRED”、“SHALL”、“SHALL NOT”、 “SHOULD”、“SHOULD NOT”、“RECOMMENDED”、“MAY” 和 “OPTIONAL” 在本规范的规范部分中应按照 RFC 2119 中的定义解释。 然而,为了可读性,这些词在本规范中并未全部以大写字母出现。

本规范的所有文本都是规范性的,除非明确标记为非规范性部分、示例和注释。[RFC2119]

本规范中的示例以 “例如” 开头,或用 class="example" 与规范文本区分开,如下所示:

这是一个说明性示例。

说明性注释以 “注意” 开头,并使用 class="note" 与规范文本区分开,如下所示:

注意,这是一个说明性注释。

建议是规范性部分,旨在引起特别注意,并使用 <strong class="advisement"> 样式,如下所示: 用户代理必须提供可访问的替代方案。

一致性类别

本规范的一致性 定义了三个一致性类别:

样式表
CSS 样式表。
渲染器
一个 用户代理,它解释样式表的语义并渲染 使用样式表的文档。
编辑工具
一个 用户代理,它编写样式表。

样式表符合本规范 如果其使用本模块定义的语法的所有声明 都符合通用 CSS 语法以及本模块中定义的每个特性的单独语法。

渲染器符合本规范 如果除了按照相关规范解释样式表之外, 它还通过正确解析所有本规范定义的特性并相应地渲染文档来支持这些特性。 然而,由于设备的限制,用户代理无法正确渲染文档并不会使其不符合规范。(例如,用户代理不要求在黑白显示器上渲染颜色。)

编辑工具符合本规范 如果它编写的样式表在语法上符合通用 CSS 语法和本模块中每个特性的个别语法,并且符合本模块中描述的样式表的所有其他一致性要求。

部分实现

为了使作者能够利用前向兼容的解析规则来指定回退值,CSS 渲染器必须将没有可用支持级别的 @规则、属性、属性值、关键字和其他语法结构视为无效,并忽略它们(并在适当时忽略)。 特别是,用户代理不得在单个多值属性声明中选择性忽略不受支持的组件值并接受受支持的值: 如果任何值被视为无效(因为不受支持的值必须是无效的),CSS 要求忽略整个声明。

不稳定和专有功能的实现

为了避免与未来稳定的 CSS 功能冲突,CSSWG 建议遵循最佳实践,以实现不稳定功能和 CSS 的专有扩展。

非实验性实现

一旦规范达到候选推荐阶段,非实验性实现是可能的,实现者应发布任何 CR 级功能的不带前缀的实现,前提是他们能够证明其符合规范。

为了建立和维护 CSS 在各个实现中的互操作性,CSS 工作组要求非实验性的 CSS 渲染器在发布任何 CSS 功能的不带前缀的实现之前,向 W3C 提交实现报告(如果有必要,还需提交该实现报告使用的测试用例)。提交给 W3C 的测试用例需经过 CSS 工作组的审查和修改。

有关提交测试用例和实现报告的详细信息,可以在 CSS 工作组的网站https://www.w3.org/Style/CSS/Test/找到。有关问题应发送至 public-css-testsuite@w3.org 邮件列表。

索引

本规范定义的术语

引用中定义的术语

参考文献

规范性引用

[CSS-ALIGN-3]
Elika Etemad; Tab Atkins Jr.. CSS盒子对齐模块第3级。2023年2月17日。工作草案。URL: https://www.w3.org/TR/css-align-3/
[CSS-BACKGROUNDS-3]
Elika Etemad; Brad Kemper. CSS背景和边框模块第3级。2024年3月11日。候选推荐标准。URL: https://www.w3.org/TR/css-backgrounds-3/
[CSS-BREAK-4]
Rossen Atanassov; Elika Etemad. CSS碎片化模块第4级。2018年12月18日。工作草案。URL: https://www.w3.org/TR/css-break-4/
[CSS-CASCADE-5]
Elika Etemad; Miriam Suzanne; Tab Atkins Jr.. CSS层叠和继承第5级。2022年1月13日。候选推荐标准。URL: https://www.w3.org/TR/css-cascade-5/
[CSS-DISPLAY-3]
Elika Etemad; Tab Atkins Jr.. CSS显示模块第3级。2023年3月30日。候选推荐标准。URL: https://www.w3.org/TR/css-display-3/
[CSS-FLEXBOX-1]
Tab Atkins Jr.; et al. CSS弹性盒布局模块第1级。2018年11月19日。候选推荐标准。URL: https://www.w3.org/TR/css-flexbox-1/
[CSS-GRID-1]
Tab Atkins Jr.; et al. CSS网格布局模块第1级。2020年12月18日。候选推荐标准。URL: https://www.w3.org/TR/css-grid-1/
[CSS-GRID-2]
Tab Atkins Jr.; Elika Etemad; Rossen Atanassov. CSS网格布局模块第2级。2020年12月18日。候选推荐标准。URL: https://www.w3.org/TR/css-grid-2/
[CSS-LOGICAL-1]
Rossen Atanassov; Elika Etemad. CSS逻辑属性与值第1级。2018年8月27日。工作草案。URL: https://www.w3.org/TR/css-logical-1/
[CSS-MULTICOL-1]
Florian Rivoal; Rachel Andrew. CSS多列布局模块第1级。2024年5月16日。候选推荐标准。URL: https://www.w3.org/TR/css-multicol-1/
[CSS-PSEUDO-4]
Daniel Glazman; Elika Etemad; Alan Stearns. CSS伪元素模块第4级。2022年12月30日。工作草案。URL: https://www.w3.org/TR/css-pseudo-4/
[CSS-RUBY-1]
Elika Etemad; et al. CSS Ruby注释布局模块第1级。2022年12月31日。工作草案。URL: https://www.w3.org/TR/css-ruby-1/
[CSS-SIZING-3]
Tab Atkins Jr.; Elika Etemad. CSS盒子大小调整模块第3级。2021年12月17日。工作草案。URL: https://www.w3.org/TR/css-sizing-3/
[CSS-TRANSFORMS-1]
Simon Fraser; et al. CSS变换模块第1级。2019年2月14日。候选推荐标准。URL: https://www.w3.org/TR/css-transforms-1/
[CSS-VALUES-3]
Tab Atkins Jr.; Elika Etemad. CSS值与单位模块第3级。2024年3月22日。候选推荐标准。URL: https://www.w3.org/TR/css-values-3/
[CSS-VALUES-4]
Tab Atkins Jr.; Elika Etemad. CSS值与单位模块第4级。2024年3月12日。工作草案。URL: https://www.w3.org/TR/css-values-4/
[CSS-WRITING-MODES-4]
Elika Etemad; Koji Ishii. CSS书写模式第4级。2019年7月30日。候选推荐标准。URL: https://www.w3.org/TR/css-writing-modes-4/
[CSS2]
Bert Bos; et al. 层叠样式表第2级修订版(CSS 2.1)规范。2011年6月7日。推荐标准。URL: https://www.w3.org/TR/CSS21/
[RFC2119]
S. Bradner. RFC中用于指示需求级别的关键词。1997年3月。最佳当前实践。URL: https://datatracker.ietf.org/doc/html/rfc2119
[SVG2]
Amelia Bellamy-Royds; et al. 可伸缩矢量图形(SVG)第2级。2018年10月4日。候选推荐标准。URL: https://www.w3.org/TR/SVG2/

属性索引

名称 值 初始值 适用于 继承 百分比 动画类型 规范顺序 计算值 逻辑属性组
margin <'margin-top'>{1,4} 0 所有元素,除内部表格元素、ruby 基容器和 ruby 注释容器外 否 参照包含块的逻辑宽度 按计算值类型 根据语法 见各属性
margin-bottom <长度-百分比> | auto 0 所有元素,除内部表格元素、ruby 基容器和 ruby 注释容器外 否 参照包含块的逻辑宽度 按计算值类型 根据语法 关键词 auto 或计算的 <长度-百分比> 值 margin
margin-left <长度-百分比> | auto 0 所有元素,除内部表格元素、ruby 基容器和 ruby 注释容器外 否 参照包含块的逻辑宽度 按计算值类型 根据语法 关键词 auto 或计算的 <长度-百分比> 值 margin
margin-right <长度-百分比> | auto 0 所有元素,除内部表格元素、ruby 基容器和 ruby 注释容器外 否 参照包含块的逻辑宽度 按计算值类型 根据语法 关键词 auto 或计算的 <长度-百分比> 值 margin
margin-top <长度-百分比> | auto 0 所有元素,除内部表格元素、ruby 基容器和 ruby 注释容器外 否 参照包含块的逻辑宽度 按计算值类型 根据语法 关键词 auto 或计算的 <长度-百分比> 值 margin
margin-trim none | [ block || inline ] | [ block-start || inline-start || block-end || inline-end ] none 块容器,多列容器,弹性盒容器,网格容器 否 N/A 离散 根据语法 一组零到四个关键词,指示修剪哪些边
padding <'padding-top'>{1,4} 0 所有元素,除表格单元格之外的内部表格元素、ruby 基容器和 ruby 注释容器外 否 参照包含块的逻辑宽度 按计算值类型 根据语法 见各属性
padding-bottom <长度-百分比 [0,∞]> 0 所有元素,除表格单元格之外的内部表格元素、ruby 基容器和 ruby 注释容器外 否 参照包含块的逻辑宽度 按计算值类型 根据语法 计算的 <长度-百分比> 值 padding
padding-left <长度-百分比 [0,∞]> 0 所有元素,除表格单元格之外的内部表格元素、ruby 基容器和 ruby 注释容器外 否 参照包含块的逻辑宽度 按计算值类型 根据语法 计算的 <长度-百分比> 值 padding
padding-right <长度-百分比 [0,∞]> 0 所有元素,除表格单元格之外的内部表格元素、ruby 基容器和 ruby 注释容器外 否 参照包含块的逻辑宽度 按计算值类型 根据语法 计算的 <长度-百分比> 值 padding
padding-top <长度-百分比 [0,∞]> 0 所有元素,除表格单元格之外的内部表格元素、ruby 基容器和 ruby 注释容器外 否 参照包含块的逻辑宽度 按计算值类型 根据语法 计算的 <长度-百分比> 值 padding

问题索引

定义此属性在断点处如何影响边距 如果该框建立了分段上下文。 另请参见问题 3314。↵