CSS方框模型模块级别3

W3C建议,

有关此文档的更多详细信息
此版本:
https://www.w3.org/TR/2024/REC-css-box-3-20240411/
最新发布版本:
https://www.w3.org/TR/css-box-3/
编辑草稿:
https://drafts.csswg.org/css-box-3/
以前的版本:
历史记录:
https://www.w3.org/standards/history/css-box-3/
实施报告:
https://wpt.fyi/results/css/css-box
反馈意见:
CSSWG问题库
CSSWG GitHub公司
编辑:
Elika J.Etemad/幻想曲(苹果)
建议对此等级库进行编辑:
GitHub编辑器
勘误表:
https://www.w3.org/Style/2024/REC-css-box-3-20240411-errata.html

摘要

本规范描述了边距和填充属性,它们在CSS框内和周围创建间距。

CSS公司是一种描述结构化文档呈现的语言(例如HTML和XML)屏幕上、纸上等。

本文件的状态

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

本文件已发布CSS工作组作为建议,使用建议轨道.

W3C推荐标准是一种规范,在广泛达成共识后,由W3C公司及其成员,工作组成员承诺免版税许可用于实现。

W3C建议将此规范作为Web标准进行广泛部署。

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

本文件受2023年11月3日W3C工艺文件.

本文件由一个在W3C专利政策.W3C维护了一个任何专利披露的公开列表与集团的可交付成果相关;该页面还包括披露专利的说明。对个人相信的专利拥有实际知识的个人包含基本索赔必须按照W3C专利政策第6节.

1介绍

本小节不规范。

CSS描述了每个元素如何以及源文档中的每个文本字符串通过转换元素树成为一组,其尺寸、位置和堆叠水平帆布取决于其CSS属性的值。

注: CSS级联和继承描述如何将属性分配给方框树中的元素,虽然CSS显示3§1简介描述了如何元素树转化为箱型树.

每个CSS具有矩形内容区域,围绕内容的一段填充,衬垫周围的边框,和边界外的边距。这个调整大小属性 [css-sizing-3],以及控制布局的各种其他属性,定义内容区域的大小。盒子样式属性-衬垫以及它的长柄,边境和它的长手,边缘和它的长手——定义这些其他区域的大小。

边距衬垫在本模块中定义。边框在中有类似的定义[css-背景-3].

注:此模块仅定义身体的每侧长手属性。其他,流量相关的 长手属性在中定义[css-logical-1].请注意,这两组长手属性控制相同保证金/衬垫:它们只是索引每一面的不同方式。

CSS Box模块的历史和块布局的定义

本模块最初包含CSS Level 3规范散文与框生成(现在在中定义[css-display-3]),盒子模型(此处定义),以及块布局(现在仅在中定义【CSS2】第9章和第10章)。由于在CSS2.1开发过程中暂停了维护,到CSS2修订版1时,其散文已严重过时终于完成了。因此,散文的版式部分已经退役,要重新同步到CSS2系列和已更新作为未来某个时间点新块布局模块的输入。它正在与此模块分离以及来自CSS显示模块这都是因为实际考虑到这将是一个巨大的工作量同时也认识到CSS现在有多个布局模型(灵活布局,网格布局,定位布局,表格布局,除块布局外)每个模块都应该有自己的并行模块。

1.1.价值定义

本规范遵循CSS属性定义约定【CSS2】使用值定义语法[CSS-值-3].本规范中未定义的值类型在CSS值和单位中定义[CSS-值-3].与其他CSS模块结合可以扩展这些值类型的定义。

除了定义中列出的特性特定值外,本规范中定义的所有属性也接受CSS-wide关键字作为其属性值。为了可读性,它们没有被明确地重复。

1.2.模块交互

此模块替换了边距和填充属性的定义定义于[CSS2]第8.1、8.2、8.3(但不是8.3.1)和8.4节。

此模块中的所有属性都应用于::一线::第一个字母伪元素。

2CSS方框模型

每个盒子都有一个内容区(包含其内容-文本、子体框、图像或其他更换的元件内容等)和可选的周围环境衬垫,边境,边缘区域;每个区域的大小由相应的属性指定,并且可以为零(如果是边距,则为负数)。下图显示了这些区域之间的关系以及用于指代箱子各部分的术语:

典型方框图,显示内容、填充、边框和边距区域

典型长方体的各个区域和边缘。

框的内容、填充和边框区域的背景由其指定背景属性。边界区域还可以使用边界样式进行绘制使用边境属性。边距始终是透明的。请参见[css-背景-3].

边距、边框和填充可以细分为顶部、右侧、底部和左侧线段,每个都可以独立控制通过其相应的属性。

2.1.盒子和边缘

四个区域的周长(内容、填充、边框和边距)被称为边缘,和每个边缘可以分解为顶部、右侧、底部和左侧。因此,每个有四个边缘每个由四个侧面组成:

内容边缘内边缘
内容边缘环绕长方体的宽度和高度给出的矩形,这通常取决于元素的内容和/或其包含块大小。The four sides of the内容边缘在一起定义框的内容框.
补白边缘
填充边缘围绕盒子的衬垫。如果给定边上的填充宽度为零,填充边缘与该侧的内容边缘重合。The four sides of the补白边缘在一起定义框的填料箱,其中包含内容填充区域.
边界边缘
边框边缘围绕着框的边框。如果给定边上的边框宽度为零,边框边缘与该侧的填充边缘重合。The four sides of the边界边缘在一起定义框的边框框,其中包含盒子的内容,衬垫,边境地区.
边距边缘外边缘
边距边缘围绕着框的边距。如果裕度在给定侧上具有零宽度,边缘边缘与该侧的边界边缘重合。The four sides of the边距边缘在一起定义框的边距框,其中包含所有盒子的内容,衬垫,边境,边缘区域.

2.2.碎片化

当一个盒子碎片-跨行或跨页拆分为单独的盒子碎片-每个盒子(内容框,填料箱,边框框,边距框)也是碎片。内容/填充/边框/边距区域对碎片的反应在中指定[css-break-3]并由箱式减压器属性。

2.3.Boxedge关键字

以下内容<框>定义CSS关键字以供使用在属性中(例如变压器箱背景幻灯片)需要参考各种长方体边缘:

内容框
指的是内容框内容边缘.(在SVG上下文中,视为填充盒.)
填充框
指的是填料箱补白边缘.(在SVG上下文中,视为填料箱.)
边箱
指的是边框框边界边缘.(在SVG上下文中,视为冲程箱.)
保证金箱
指的是边距框边缘.(在SVG上下文中,视为冲程箱.)
填充盒
指的是对象边界框或其边缘。(在CSS框上下文中,视为内容框.)
冲程箱
指的是笔划边界框或其边缘。(在CSS框上下文中,视为边箱.)
查看框
指最近的SVG视口元素的原点框,它是一个有宽度和高度的矩形初始SVG的用户坐标系视图框属性,定位为使其左上角固定在坐标系原点。(在CSS框上下文中,视为边箱.)

注:视图框包括非零最小-xmin-y(分钟-年)偏移,原点框实际上并不对应到由视图框!

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

<可视框>=内容框|填充框|边箱<布局框>=<可视框> |保证金箱<颜料盒>=<可视框> |填充盒|冲程箱<坐标箱>=<颜料盒> |查看框

3边距

边距围绕方框的边界边缘,提供框之间的间距。这个保证金属性指定厚度边缘区域一个盒子。这个边缘 缩写性质设置所有四边的边距而保证金长手特性只设置各自的边。本节定义了身体的 边缘 双手修长.(附加流量相关的 边缘 拉手定义于[css-logical-1].)

注:中的相邻边距区块布局可以崩溃.请参见CSS2§8.3.1崩溃边缘了解详细信息。此外,相邻的页边距碎片断裂有时会被截断。请参见CSS碎片3§5.2休息时的相邻边距了解详细信息。

3.1.页面相关(物理)边距属性:边缘顶部,边缘向右,边缘-底部、和边缘左侧属性

姓名:边缘顶部,边缘向右,边缘-底部,边缘左侧
数值: <长度百分比> |汽车
首字母: 0
适用于: 除之外的所有元素内部表元素
继承:
百分比: 参考逻辑宽度包含块的
计算值: 关键字汽车或计算的<长度百分比>价值
标准订单: 按语法
动画类型: 按计算值类型
逻辑属性组: 边缘

这些属性设置顶部、右侧、底部和左侧边缘分别是。

允许裕度属性的负值,但可能存在特定于实现的限制。

注:应用于内部红宝石盒子 [CSS-RUBY-1]本规范中未定义。

3.2.边距速记:边缘财产

姓名:边缘
数值: <'边缘顶部'>{1,4}
首字母: 0
适用于: 参见各个属性
继承:
百分比: 参考逻辑宽度包含块的
计算值: 参见各个属性
标准订单: 按语法
动画类型: 按计算值类型

这个边缘属性是设置的简写属性边缘顶部,边缘向右,边缘底部、和边缘左侧在单个声明中。

如果只有一个分量值,它适用于所有方面。如果有两个值,上下边距设置为第一个值左右边距设置为第二个。如果有三个值,顶部被设置为第一值,左侧和右侧设置为第二个,底部设置为第三个。如果有四个值它们分别适用于顶部、右侧、底部和左侧。

下面的代码演示了一些可能的边缘声明。
正文{margin:2em}/*所有边距设置为2em*/正文{margin:1em 2em}/*顶部和底部=1em,右侧和左侧=2em*/正文{margin:1em 2em 3em}/*顶部=1em,右侧=2em,底部=3em,左侧=2em*/

上述示例的最后一条规则与以下示例等效:

车身{边缘顶部:1em;边缘-右侧:2em;边缘-底部:3em;左边边距:2em;/*从对面复制(右)*/}

4衬垫

衬垫在内容边缘之间插入和盒子的边沿,提供内容和边框之间的间距。这个填充属性指定厚度填充区域一个盒子。这个衬垫 缩写性质设置所有四边的填充而填充长手特性只设置各自的边。本节定义身体的 衬垫 拉手.(附加流量相关的 衬垫 拉手定义于[css-logical-1].)

注:方框上指定的背景默认情况下在填充边缘内进行布局和绘制。(在边界下方额外涂漆,在中边境地区.)这种行为可以调整使用背景原语背景幻灯片属性。

4.1.页面相关(物理)填充属性:padding-top(填充顶部),右边距,底部间隙、和向左填充属性

姓名:padding-top(填充顶部),右边距,底部间隙,向左填充
数值: <长度百分比[0,∞]>
首字母: 0
适用于: 除以下内容外的所有元素:内部表元素非表格单元格
继承:
百分比: 参考逻辑宽度包含块的
计算值: 计算的<长度百分比>价值
标准订单: 根据语法
动画类型: 按计算值类型
逻辑属性组: 衬垫

这些属性设置顶部、右侧、底部和左侧衬垫分别是。

填充属性的负值无效。

注:应用于内部红宝石盒子 [CSS-RUBY-1]未在本规范中定义。

4.2.填充速记:衬垫财产

姓名:衬垫
数值: <“添加到顶部”>{1,4}
首字母: 0
适用于: 参见各个属性
继承:
百分比: 参考逻辑宽度包含块的
计算值: 参见各个属性
标准订单: 按语法
动画类型: 按计算值类型

这个衬垫属性是设置的简写属性padding-top(填充顶部),右边距,底部间隙、和向左填充在单个声明中。

如果只有一个分量值,它适用于所有方面。如果有两个值,顶部和底部填充设置为第一个值并且将右侧和左侧填充设置为第二个。如果有三个值,顶部被设置为第一值,左侧和右侧设置为第二个,底部设置为第三个。

下面的代码演示了一些可能的衬垫声明。
body{padding:2em}/*所有padding设置为2em*/正文{padding:1em 2em}/*顶部和底部=1em,右侧和左侧=2em*/正文{padding:1em 2em 3em}/*顶部=1em,右侧=2em,底部=3em,左侧=2em*/

上述示例的最后一条规则与以下示例等效:

车身{衬垫顶部:1厘米;向右填充:2em;填充底部:3em;向左填充:2em;/*从对面复制(右)*/}

5边框

边框填充边境地区,以直观地描绘盒子的边缘,这个边框属性指定厚度边境地区一个盒子,以及它的绘画风格和颜色。请参见[css-背景-3]对于这些属性的定义,包括他们的身体的拉手。(附加流量相关的边境拉手定义于[css-logical-1].)

6变化

6.1.最近的更改

只有轻微的编辑调整自从2023年4月6日建议:

6.2.自CSS级别2以来的更改

对此模块进行了以下更改自从CSS级别2:

7隐私注意事项

本模块未报告隐私问题。

8安全注意事项

此模块未报告任何安全注意事项。

一致性

文档约定

一致性要求通过以下组合表示描述性断言和RFC 2119术语。关键词“MUST”,“绝对不能”、“必需”、“应该”、“不应”、“宜”、“不宜”,本规范部分中的“推荐”、“可能”和“可选”文件应按照RFC 2119中的描述进行解释。然而,为了可读性,这些单词并非全部大写本规范中的字母。

除章节外,本规范的所有文本均为规范性文本明确标记为非规范性、示例和注释。[RFC2119]

本规范中的示例使用“例如”一词进行介绍或与规范性文本分开class=“示例”,这样地:

这是一个信息丰富的示例。

信息性注释以单词“Note”开头,与规范性文本class=“注释”,如下所示:

注意,这是一个信息性注释。

建议是规范性章节,旨在引起特别关注与其他规范性文本分开<strong class=“advisement”>,比如这个:UA必须提供可访问的替代方案。

一致性类别

符合本规范定义了三个一致性类:

样式表
A类CSS公司样式表.
渲染器
A类UA公司解释样式表的语义并呈现使用它们的文档。
创作工具
A类UA公司它编写了一个样式表。

样式表符合本规范如果它使用此模块中定义的语法的所有语句都有效根据通用CSS语法和每个此模块中定义的功能。

渲染器符合此规范如果,除了解释适当的规范,它支持所有定义的功能通过正确解析它们并相应地呈现文档。然而UA因设备限制正确呈现文档不会使UA非共振。(例如,UA不是需要在单色监视器上渲染颜色。)

创作工具符合本规范如果它根据通用CSS语法和中每个功能的单独语法并满足样式表的所有其他一致性要求如本模块所述。

部分实现

这样作者就可以利用前向兼容的解析规则来分配回退值,CSS呈现器必须视为无效(和忽视视情况而定)任何at-rules、属性、属性值、关键字、,和其他语法结构,它们没有可用的级别支持。尤其是用户代理不能选择性地忽略不支持的组件值并在单个多值属性声明:如果任何值被视为无效(必须是不支持的值),CSS要求整个声明被忽略。

不稳定和专有功能的实现

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

非实验性实施

一旦规范达到候选推荐阶段,非外围实现是可能的,实现者应该发布任何未经准备的CR级功能实现可以证明按照规范正确实施。

建立和维护CSS的互操作性CSS工作组要求CSS呈现器提交一份实现报告(如果需要,还提交用于该实现报告的测试用例)发布任何CSS功能的无准备实现。测试用例提交给W3C的文件将由CSS审查和更正工作组。

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

索引

本规范定义的术语

引用定义的术语

参考文献

规范性引用文件

[CSS-背景-3]
Elika Etemad;布拉德·坎佩尔。CSS背景和边框模块级别32024年3月11日。注册网址:https://www.w3.org/TR/css-backgrounds-3网站/
[CSS-断路器-4]
罗森·阿塔纳索夫;埃利卡·埃特玛。CSS碎片模块级别42018年12月18日。西部数据。网址:https://www.w3.org/TR/css-break-4/
【CSS-CASCADE-5】
Elika Etemad;米里亚姆·苏珊娜;Tab Atkins Jr.公司。。CSS级联和继承级别52022年1月13日。CR.网址:https://www.w3.org/TR/css-cascade-5/
[CSS-DISPLAY-3]
Elika Etemad;Tab Atkins Jr.公司。。CSS显示模块级别32023年3月30日。CR.网址:https://www.w3.org/TR/css-display-3网站/
[CSS-PSEUDO-4]
丹尼尔·格拉兹曼(Daniel Glazman);Elika Etemad;阿兰·斯特恩斯(Alan Stearns)。CSS伪元素模块4级2022年12月30日。西部数据。网址:https://www.w3.org/TR/css-pseudo-4网站/
[CSS-尺寸确定-3]
小塔布·阿特金斯。;埃利卡·埃特玛。CSS框大小调整模块级别32021年12月17日。西部数据。网址:https://www.w3.org/TR/css-sizing-3/
[CSS-变换-1]
西蒙·弗雷泽;等人。CSS转换模块级别12019年2月14日。CR.网址:https://www.w3.org/TR/css-transforms-1/
[CSS-值-3]
小塔布·阿特金斯。;埃利卡·埃特玛。CSS值和单位模块级别32024年3月22日。注册网址:https://www.w3.org/TR/css-values-3/
[CSS-值-4]
小塔布·阿特金斯。;埃利卡·埃特玛。CSS值和单位模块4级2024年3月12日。西部数据。网址:https://www.w3.org/TR/css-values-4/
[CSS-写入-模式-4]
Elika Etemad;石井浩二。CSS写入模式级别42019年7月30日。CR.网址:https://www.w3.org/TR/css-writing-modes-4/
【CSS2】
伯特·博斯;等人。级联样式表第2级修订版1(CSS 2.1)规范2011年6月7日。REC.网址:https://www.w3.org/TR/CSS21/
[RFC2119]
S.Bradner(布拉德纳)。RFC中用于指示需求级别的关键词1997年3月。当前最佳实践。网址:https://datatracker.ietf.org/doc/html/rfc2119
[SVG2]
阿米莉亚·贝拉米·罗伊兹;等人。可缩放矢量图形(SVG)22018年10月4日。CR.网址:https://www.w3.org/TR/SVG2/

资料性引用

[CSS-断路器-3]
罗森·阿塔纳索夫;埃利卡·埃特玛。CSS碎片模块级别32018年12月4日。CR.网址:https://www.w3.org/TR/css-break-3(网址:https://www.w3.org/TR/css-break-3)/
[CSS-逻辑-1]
罗森·阿塔纳索夫;埃利卡·埃特玛。CSS逻辑属性和值级别12018年8月27日。西部数据。网址:https://www.w3.org/TR/css-logical-1/
[CSS-RUBY-1]
Elika Etemad;等人。CSS Ruby批注布局模块级别12022年12月31日。西部数据。网址:https://www.w3.org/TR/css-ruby-1/

财产索引

姓名价值首字母适用于英寸。%年龄动画类型标准订单计算值逻辑属性组
边缘 <'边缘顶部'>{1,4}0参见各个属性指包含块的逻辑宽度按计算值类型根据语法参见各个属性
边缘-底部 <长度百分比>|auto0除内部表元素外的所有元素指包含块的逻辑宽度按计算值类型按语法关键字auto或计算的<length-percentage>值边缘
边缘左侧 <长度百分比>|auto0除内部表元素外的所有元素指包含块的逻辑宽度按计算值类型按语法关键字auto或计算的<length-percentage>值边缘
边缘向右 <长度百分比>|auto0除内部表元素外的所有元素指包含块的逻辑宽度按计算值类型按语法关键字auto或计算的<length-percentage>值边缘
边缘顶部 <长度百分比>|auto0除内部表元素外的所有元素指包含块的逻辑宽度按计算值类型按语法关键字auto或计算的<length-percentage>值边缘
衬垫 <'添加到顶部'>{1,4}0参见各个属性指包含块的逻辑宽度按计算值类型根据语法参见各个属性
底部间隙 <长度百分比[0,∞]>0除以下元素外的所有元素:表单元格以外的内部表元素指包含块的逻辑宽度按计算值类型按语法计算的<length-percentage>值衬垫
向左填充 <长度百分比[0,∞]>0除以下元素外的所有元素:表单元格以外的内部表元素指包含块的逻辑宽度按计算值类型根据语法计算的<length-percentage>值衬垫
右边距 <长度百分比[0,∞]>0除以下元素外的所有元素:表单元格以外的内部表元素指包含块的逻辑宽度按计算值类型按语法计算的<length-percentage>值衬垫
padding-top(填充顶部) <长度百分比[0,∞]>0除以下元素外的所有元素:表单元格以外的内部表元素指包含块的逻辑宽度按计算值类型按语法计算的<length-percentage>值衬垫