为什么 css 表格只在其行周围绘制边框而不包括 table-caption 内部边框?

Why css tables only draw border around its rows and not include table-caption inside border?

在 css tables 中,我注意到如果我向 display: table; 元素添加边框,它只会在所有 display: table-row; 节点周围绘制边框,但不会display: table-caption; 元素周围,即使 table-caption 节点是 display: table; 的 child。为什么要这样做?

如何让它围绕整个 table 绘制边框(即在边框内包含 table-caption)?

我创建了一个 fiddle 来证明这一点:https://jsfiddle.net/9028hswc/

任何带有 CSS 属性 display: table-caption 的元素的行为都像 <caption> 元素。

来自MDN

The HTML <caption> Element (or HTML Table Caption Element) represents the title of a table. Though it is always the first descendant of a , its styling, using CSS, may place it elsewhere, relative to the table.

因此,从技术上讲,它不是 table 的一部分,这就是它不在边界内的原因。

正如 2-cents 在评论中提到的那样,以下是如何在所有内容周围设置边框:https://jsfiddle.net/25zwopqr/

变化:

HTML

<caption class='table-caption-div'>People Names</caption>

CSS

.table-caption-div {
  display: inline-block;
  background-color: #cf0;
}