CSS:如何在表格中的行之间创建间隙?

MGO*_*wen 84 html css

意味着使得结果表看起来不像这样:

[===ROW===]
[===ROW===]
[===ROW===]
[===ROW===]

......更像这样:

[===ROW===]

[===ROW===]

[===ROW===]

[===ROW===]

我尝试添加

margin-bottom:1em;
Run Code Online (Sandbox Code Playgroud)

对于tdtr都没有得到任何东西.有任何想法吗?

Joh*_*and 192

一切你需要的:

table {
    border-collapse: separate;
    border-spacing: 0 1em;
}
Run Code Online (Sandbox Code Playgroud)

假设您想要1em垂直间隙,并且没有水平间隙.如果你这样做,你可能也应该考虑控制你的行高.

人们给出的一些答案涉及边界崩溃:崩溃,其效果与问题所要求的完全相反,这有点奇怪.

  • 这个问题没有要求. (13认同)
  • 此解决方案不允许您有选择地将间距应用于某些行. (4认同)
  • 我可以说我爱你吗?哦,我的上帝.你刚刚保存了我的一个$$ (3认同)

Rya*_*nce 92

table {
    border-collapse: collapse;
}

td {
    padding-top: .5em;
    padding-bottom: .5em;
}
Run Code Online (Sandbox Code Playgroud)

除非先设置边框折叠,否则单元格不会对任何内容做出反应.一旦设置了TR元素,您也可以为TR元素添加边框(以及其他内容.)

如果这是用于布局,我将转向使用DIV和更多最新的布局技术,但如果这是表格数据,请自行解决.我仍然在我的Web应用程序中大量使用表来获取数据.

  • 这是一个非常糟糕的方法.您正在修改单元格的盒子以定位单元格,而不是仅仅通过将单元格融合在一起来定位单元格,因为您希望它们分开.第二个细胞需要背景,你被搞砸了.正确的方法是边界分离,而不是边界崩溃,使用边界分隔来定义边界分离. (29认同)
  • 这几乎是第一个实现的 CSS2,因为浏览器已经为 HTML 版本实现了表格间隙,每个人都用来实现像素精确的布局。是的,我确定。:) (2认同)
  • 这是 CSS 中那些奇怪的角落之一,除了读过规范的人之外没有人知道。(它们的数量惊人地多。同样,float 基本上不应该像在实践中使用的那样使用。) (2认同)

Abr*_*hin 6

只需在元素上使用padding-topand即可。padding-bottomtd

单位可以是此列表中的任何内容:

在此输入图像描述

演示代码:

td
{
  padding-top: 10px;
  padding-bottom: 10px;
}
Run Code Online (Sandbox Code Playgroud)
<table>
  <tr>
    <th>Firstname</th>
    <th>Lastname</th>
  </tr>
  <tr>
    <td>Peter</td>
    <td>Griffin</td>
  </tr>
  <tr>
    <td>Lois</td>
    <td>Griffin</td>
  </tr>
</table>
Run Code Online (Sandbox Code Playgroud)


Kob*_*obi 5

如果您没有边框,或者有边框并希望单元格内有间距,则可以使用padding, 或line-height。据我所知,边距对单元格和行没有影响。
用于单元格间距的 CSS 属性是border-spacing,但它不适用于 IE6/7(因此您可以根据人群使用它)。

如果所有其他方法都失败了,您可以cellspacing在标记中使用旧属性 - 但这也会为您提供列之间的间距。一些CSS 重置建议您无论如何都应该设置它以获得跨浏览器支持:

/* 表中仍然需要cellspacing="0"标记 */


Fli*_*imm 5

如果没有其他答案令人满意,则始终可以创建一个空行,并使用CSS对其进行适当样式设置以使其透明。

  • 匿名用户不赞成使用CSS指定单个行的高度的方法要比将假内容添加到表中要好得多,这是因为您需要控制单个行,而这并不是这个问题。 (2认同)
  • 来这里是说我正在解决一个需要非常指定的布局的问题,这可能是**我完全忽略**的最优雅的解决方案。有时最简单的解决方案是最好的。 (2认同)