表格单元格垂直对齐的默认值

Posted

技术标签:

【中文标题】表格单元格垂直对齐的默认值【英文标题】:Default value of vertical-align for table cells 【发布时间】:2016-02-02 21:34:23 【问题描述】:

根据spec,vertical-align的默认值为baseline

baseline

将框的基线与父框的基线对齐。如果 盒子没有基线,将底部边缘对齐 父母的基线。

但是,当涉及到表格单元格 (td) 时,默认值似乎始终是 middle

middle

将框的垂直中点与父级的基线对齐 box 加上父级 x 高度的一半。

我希望官方确认此行为,但我在 W3C 文档中找不到任何内容。我发现的所有内容都说默认值是baseline

哪里说vertical-align 的默认值是middle 用于表格单元格?

【问题讨论】:

【参考方案1】:

正如规范所说,vertical-align 的初始值始终是baseline

垂直对齐

首字母:基线

但是,正如The cascade 中所述,

Conforming user agents 必须应用默认样式表(或 表现得像他们一样)。

用户代理的默认样式表应该显示 以满足一般表述的方式记录语言 对文档语言的期望。

有关推荐的默认样式,请参阅 A sample style sheet for html HTML 文档的工作表。

推荐的样式表包含

thead, tbody,
tfoot            vertical-align: middle 
td, th, tr       vertical-align: inherit 

因此,如果您(作者来源)没有为tbodytdvertical-align 提供任何值,则级联将从用户代理来源检索middle 值。

请注意,默认样式表依赖于实现,因此某些浏览器可能会为不同的元素设置不同的vertical-align 值。

【讨论】:

哦,这就解释了为什么td vertical-align:initial; 将事情恢复为baseline(我很难理解为什么,因为我认为middle 是默认值,所以initial 会保持原样)跨度>

以上是关于表格单元格垂直对齐的默认值的主要内容,如果未能解决你的问题,请参考以下文章

为当前单元格设置默认值 Google 电子表格

Css中控制table单元格的间距

垂直对齐表格单元格中的文本[关闭]

表格单元格中旋转文本的垂直对齐方式

如何在表格单元格的垂直中心对齐 CSS 箭头?

div表格单元格垂直对齐不起作用