当前位置:  开发笔记 > 前端 > 正文

表中两行之间的空格?

如何解决《表中两行之间的空格?》经验,为你挑选了17个好方法。

这可能通过CSS吗?

我尝试着

tr.classname {
  border-spacing: 5em;
}

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



1> Jan Aagaard..:

您需要在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;
}
A B
C D
E F


2> user37731..:

在父表中,尝试设置

border-collapse:separate; 
border-spacing:5em;

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


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

3> Pradyut Bhat..:

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

在CSS中:

table#albums 
{
    border-collapse:separate;
    border-spacing:0 5px;
}


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

4> 小智..:

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


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


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

5> Justus Romij..:

来自Mozilla开发者网络:

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

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

.your-table {
    border-collapse: separate; /* allow spacing between cell borders */
    border-spacing: 0 5px; /* NOTE: syntax is   */

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;
}
Lead singer Band
Bono U2
Chris Martin Coldplay
Mick Jagger Rolling Stones
John Lennon The Beatles


6> Denis..:

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

HTML:


CSS:

table tr.separator { height: 10px; }


对于IE,没有身体的tr将无法识别.添加虚拟td标签.

7> Robert C. Ba..:

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



8> Paul..:

好的,你可以做到

tr.classname td {background-color:red; border-bottom: 5em solid white}

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



9> John Haugela..:

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

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

尝试:


    
AB
CD


谢谢.我之前在评论中感谢你,但是一个过分热心的编辑想要改变我的风格并在此过程中打破代码也删除了我的说法谢谢.我现在把它放在无法编辑的地方.

10> Syno..:

看看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;}
Some text - 1 Some text - 1
Some text - 2 Some text - 2
Some text - 3 Some text - 3


11> alansiqueira..:

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



12> 小智..:
tr { 
    display: block;
    margin-bottom: 5px;
}



13> Oguzhan Ozel..:

来不及答案:)

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

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

tr.classname {
margin-bottom:5px;
}


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

14> Varun Natraa..:

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

tr 
{
   background-color: #FFD700;
   border: 10px solid white;
}



15> Usman Zaheer..:

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


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

16> Thoronwen..:

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

td { border: 1em solid transparent; }

透明边框仍然有宽度.



17> FlavorScape..:

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

    tr {
      border-bottom:5em solid white;
    }

推荐阅读
php
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有