表中两行之间的空格?

Mar*_*rin 733 html css

这可能通过CSS吗?

我尝试着

tr.classname {
  border-spacing: 5em;
}
Run Code Online (Sandbox Code Playgroud)

无济于事.也许我做错了什么?

Jan*_*ard 515

您需要在td元素上使用填充.这样的事情应该可以解决问题.当然,您可以使用顶部填充而不是底部填充来获得相同的结果.

在下面的CSS代码中,大于号表示填充仅应用于td直接子tr元素到元素的元素spaceUnder.这样就可以使用嵌套表.(示例代码中的单元格C和D.)我不太确定直接子选择器的浏览器支持(想想IE 6),但它不应该破坏任何现代浏览器中的代码.

/* Apply padding to td elements that are direct children of the tr elements with class spaceUnder. */

tr.spaceUnder>td {
  padding-bottom: 1em;
}
Run Code Online (Sandbox Code Playgroud)
<table>
  <tbody>
    <tr>
      <td>A</td>
      <td>B</td>
    </tr>
    <tr class="spaceUnder">
      <td>C</td>
      <td>D</td>
    </tr>
    <tr>
      <td>E</td>
      <td>F</td>
    </tr>
  </tbody>
</table>
Run Code Online (Sandbox Code Playgroud)

这应该有点像这样:

+---+---+
| A | B |
+---+---+
| C | D |
|   |   |
+---+---+
| E | F |
+---+---+
Run Code Online (Sandbox Code Playgroud)

  • 除非您的行具有背景颜色并且您实际上想要在行之间使用WHITESPACE,否则这根本无法解决问题. (384认同)
  • @Jan:是的,完全是我的观点......在行之间放置*transparent*空格是相当困难的.您的解决方案在某些情况下有所帮助,但无法解决该问题.插入一个空表行可能会有效,但它很好.设置为透明的`bottom-border`也可以工作,但我不确定它是如何跨浏览器兼容的. (18认同)
  • @Simon:空白通常是指空白空间,而不是具体的白色.如果要对行之间的空间进行着色,可以尝试使用td-elements上的CSS <code> border-bottom </ code>属性.这可能只能使用1px边框正确呈现.另一个但不那么优雅的解决方案是使用空行. (6认同)

use*_*731 366

在父表中,尝试设置

border-collapse:separate; 
border-spacing:5em;
Run Code Online (Sandbox Code Playgroud)

加上边界声明,看看这是否达到了你想要的效果.但要注意,IE不支持"分离边界"模型.

  • 这是实际的答案,特别是设置`border-spacing:0 1em`以获得仅在行之间的间距. (81认同)
  • 此外,它控制表中所有行的间距,您不能为各行设置行间距(这可能是OP想要实现的). (7认同)
  • 是的,这种方法*将是理想的,除了IE 7不支持它.有关浏览器支持,请参阅:http://www.quirksmode.org/css/tables.html (5认同)

Pra*_*rya 180

你有任何数据的id专辑表...我省略了trs和tds

<table id="albums" cellspacing="0">       
</table>
Run Code Online (Sandbox Code Playgroud)

在CSS中:

table#albums 
{
    border-collapse:separate;
    border-spacing:0 5px;
}
Run Code Online (Sandbox Code Playgroud)

  • 这对我很有用.border-spacing的第一个参数是单元格之间的水平间距,第二个参数是垂直间距. (15认同)

小智 128

因为我在桌子后面有一个背景图像,用白色填充伪装它是行不通的.我选择在每行内容之间放一个空行:

<tr class="spacer"><td></td></tr>
Run Code Online (Sandbox Code Playgroud)

然后使用css为间隔行提供一定的高度和透明背景.

  • 这让我想起了90年代,当CSS支持几乎不存在时,表格被用于大多数布局.不过,我仍然给它+1,因为其他"答案"在实际制作空间_ Between_ tables行方面并不是更好. (10认同)
  • 我想,这可能更灵活.您无法始终控制何时需要空间(动态生成的页面). (3认同)
  • 它可能有用,但它在语义上不正确. (2认同)

Jus*_*ijn 71

来自Mozilla开发者网络:

边框间距CSS属性指定相邻单元格边框之间的距离(仅适用于分隔的边框模型).这相当于表示HTML中的cellspacing属性,但可选的第二个值可用于设置不同的水平和垂直间距.

最后一部分经常受到监督.例:

.your-table {
    border-collapse: separate; /* allow spacing between cell borders */
    border-spacing: 0 5px; /* NOTE: syntax is <horizontal value> <vertical value> */
Run Code Online (Sandbox Code Playgroud)

UPDATE

我现在明白OP需要特定的,单独的行来增加间距.我添加了一个包含tbody元素的设置,可以在不破坏语义的情况下完成.但是,我不确定它是否在所有浏览器上都受支持.我在Chrome中制作了它.

下面的例子是为了展示如何让它看起来像是存在单独的行,完整的css甜蜜.还为第一行提供了更多的间距tbody.随意使用!

支持通知:IE8 +,Chrome,Firefox,Safari,Opera 4+

.spacing-table {
  font-family: 'Helvetica', 'Arial', sans-serif;
  font-size: 15px;
  border-collapse: separate;
  table-layout: fixed;
  width: 80%;
  border-spacing: 0 5px; /* this is the ultimate fix */
}
.spacing-table th {
  text-align: left;
  padding: 5px 15px;
}
.spacing-table td {
  border-width: 3px 0;
  width: 50%;
  border-color: darkred;
  border-style: solid;
  background-color: red;
  color: white;
  padding: 5px 15px;
}
.spacing-table td:first-child {
  border-left-width: 3px;
  border-radius: 5px 0 0 5px;
}
.spacing-table td:last-child {
  border-right-width: 3px;
  border-radius: 0 5px 5px 0;
}
.spacing-table thead {
  display: table;
  table-layout: fixed;
  width: 100%;
}
.spacing-table tbody {
  display: table;
  table-layout: fixed;
  width: 100%;
  border-spacing: 0 10px;
}
Run Code Online (Sandbox Code Playgroud)
<table class="spacing-table">
  <thead>
    <tr>
        <th>Lead singer</th>
        <th>Band</th>
    </tr>
  </thead>
  <tbody>
    <tr>
        <td>Bono</td>
        <td>U2</td>
    </tr>
  </tbody>
  <tbody>
    <tr>
        <td>Chris Martin</td>
        <td>Coldplay</td>
    </tr>
    <tr>
        <td>Mick Jagger</td>
        <td>Rolling Stones</td>
    </tr>
    <tr>
        <td>John Lennon</td>
        <td>The Beatles</td>
    </tr>
  </tbody>
</table>
Run Code Online (Sandbox Code Playgroud)


Den*_*nis 53

您可以尝试添加分隔符行:

HTML:

<tr class="separator" />
Run Code Online (Sandbox Code Playgroud)

CSS:

table tr.separator { height: 10px; }
Run Code Online (Sandbox Code Playgroud)

  • 对于IE,没有身体的tr将无法识别.添加虚拟td标签. (7认同)

Rob*_*rth 47

您无法更改表格单元格的边距.但是你可以改变填充.更改TD的填充,这将使单元格更大,并使用增加的填充将文本推离侧面.但是,如果你有边框线,它仍然不是你想要的.


Pau*_*aul 20

好的,你可以做到

tr.classname td {background-color:red; border-bottom: 5em solid white}
Run Code Online (Sandbox Code Playgroud)

确保在td而不是行上设置背景颜色.这适用于大多数浏览器...(Chrome,即&ff测试)


Joh*_*and 20

你需要border-collapse: separate;在桌子上设置; 大多数浏览器默认样式表开始于border-collapse: collapse;,它会划分边框间距.

另外,边界间距:继续TD,而不是TR.

尝试:

<html><head><style type="text/css">
    #ex    { border-collapse: separate; }
    #ex td { border-spacing: 1em; }
</style></head><body>
    <table id="ex"><tr><td>A</td><td>B</td></tr><tr><td>C</td><td>D</td></tr></table>
</body>
Run Code Online (Sandbox Code Playgroud)

  • 谢谢.我之前在评论中感谢你,但是一个过分热心的编辑想要改变我的风格并在此过程中打破代码也删除了我的说法谢谢.我现在把它放在无法编辑的地方. (4认同)
  • 边框间距也适用于表而不是 td (2认同)

Syn*_*yno 19

看看border-collapse:separate属性(默认)和border-spacing属性.

首先,您必须使用border-collapse 分隔它们,然后您可以使用border-spacing定义列和行之间的空间.

这两个CSS属性实际上在每个浏览器上都得到了很好的支持,请参见此处.

table     {border-collapse: separate;  border-spacing: 10px 20px;}

table, 
table td,
table th  {border: 1px solid black;}
Run Code Online (Sandbox Code Playgroud)
<table>
  <tr>
    <td>Some text - 1</td>
    <td>Some text - 1</td>
  </tr>
  <tr>
    <td>Some text - 2</td>
    <td>Some text - 2</td>
  </tr>
  <tr>
    <td>Some text - 3</td>
    <td>Some text - 3</td>
  </tr>
</table>
Run Code Online (Sandbox Code Playgroud)


ala*_*a27 18

您可以在表格中使用line-height:

<table style="width: 400px; line-height:50px;">
Run Code Online (Sandbox Code Playgroud)


小智 13

tr { 
    display: block;
    margin-bottom: 5px;
}
Run Code Online (Sandbox Code Playgroud)


Ogu*_*zel 11

来不及答案:)

如果将float应用于tr元素,则可以在具有margin属性的两行之间留出空格.

table tr{
float: left
width: 100%;
}

tr.classname {
margin-bottom:5px;
}
Run Code Online (Sandbox Code Playgroud)

  • 那太可怕了.这实际上做的是将行的`display`属性设置为`block`.这允许行具有边距.垂直边距"[适用于:除表格标题,表格和内联表格以外的表格显示类型除外的所有元素](https://developer.mozilla.org/en/CSS/margin-bottom)".由于`table-row`不是任何例外,因此它不计算它.你可以通过`tr {display:block;}来实现同样的效果.但是我会担心在复杂的表中使用这些方法中的任何一个.它可能不会导致您的期望. (12认同)

Var*_*aaj 11

要创建行间距的错觉,请将背景颜色应用于行,然后创建一个白色的粗边框,以便创建"空格":)

tr 
{
   background-color: #FFD700;
   border: 10px solid white;
}
Run Code Online (Sandbox Code Playgroud)


Usm*_*eer 9

为表提供间距的正确方法是使用cellpadding和cellspacing例如

<table cellpadding="4">
Run Code Online (Sandbox Code Playgroud)

  • 你可以通过CSS来做到这一点,我认为它更"正确"(除了它更优雅的事实,从标记移动样式到CSS节省带宽). (5认同)
  • 它不节省带宽.我实际上使用更多.假设您没有为此添加样式表,则需要在此表中添加选择器以及可能的id或名称.这更多的字节不少. (2认同)

Tho*_*wen 9

在遇到类似问题的同时,我偶然发现了这一点.我发现Varun Natraaj的答案非常有帮助,但我会使用透明边框代替.

td { border: 1em solid transparent; }
Run Code Online (Sandbox Code Playgroud)

透明边框仍然有宽度.


Fla*_*ape 6

适用于2015年最新的浏览器.简单的解决方案.它不适用于透明,但与Thoronwen的答案不同,我不能透明地渲染任何大小.

    tr {
      border-bottom:5em solid white;
    }
Run Code Online (Sandbox Code Playgroud)


小智 6

table { border-collapse: separate; border-spacing: 0 1em; }

  • 虽然此代码可以回答问题,但提供有关如何和/或为何解决问题的附加上下文将提高​​答案的长期价值。您可以在帮助中心找到有关如何编写良好答案的更多信息:https://stackoverflow.com/help/how-to-answer。祝你好运 (2认同)

小智 5

只需放入divtd设置以下样式div

margin-bottom: 20px;
height: 40px;
float: left;
width: 100%;
Run Code Online (Sandbox Code Playgroud)


kir*_*nsr 5

最好的方法是添加<td>一个height属性:

<td height="50" colspan="2"></td>
Run Code Online (Sandbox Code Playgroud)

您可以colspan 在此处阅读更多相关信息。

在下面的示例中,我们的绿色的,我们的td属性height黄色的

<table style="background-color: green">
    <tr>
        <td>
            <span>Lorem</span>
        </td>
        <td>
            <span>Ipsum</span>
        </td>
    </tr>
    <tr>
        <td height="50" colspan="2" style="background-color: yellow"></td>
    </tr>
    <tr>
        <td>
            <span>Sit</span>
        </td>
        <td>
            <span>Amet</span>
        </td>
    </tr>
</table>
Run Code Online (Sandbox Code Playgroud)


Sab*_*dar 5

你可以在你的桌子上做类似的事情:

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

表选择性:因为它将选择所有表,所以如果您想选择单个表,您也可以这样做

<table class="res">

</table>
Run Code Online (Sandbox Code Playgroud)

对于上面的 html,你可以这样做,请注意,对于特定的表,如果你想要的话,你可以使用下面的方法。

.res {
      border-collapse: separate;
      border-spacing: 0 15px;
    }
Run Code Online (Sandbox Code Playgroud)

参考:https://www.w3docs.com/snippets/css/how-to-create-space- Between -rows-in-the-table.html