表中两行之间的空格?

这是可能的通过CSS?

我尝试着

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

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

你需要在你的td元素上使用填充。 像这样的事情应该做的伎俩。 当然,您可以使用顶部填充而不是底部填充获得相同的结果。

在下面的CSS代码中,大于号表示填充仅适用于td元素,这些元素是直接子元素到tr元素的类spaceUnder 。 这将使得使用嵌套表成为可能。 (在示例代码中的单元格C和D.)我不太确定直接子select器(想想IE 6)的浏览器支持,但它不应该破坏任何现代浏览器中的代码。

 /* Apply padding to td elements that are direct children of the tr elements with class spaceUnder. */ tr.spaceUnder>td { padding-bottom: 1em; } 
 <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> 

在父表中,尝试设置

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

再加上一个边界声明,看看这是否达到你想要的效果。 但是,请注意,IE不支持“分隔边界”模式。

你有任何数据与ID专辑表…我已经省略了trs和tds

 <table id="albums" cellspacing="0"> </table> 

在CSS中:

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

因为我在桌子后面有一个背景图像,所以用白色填充来伪造它将不起作用。 我select在每行内容之间放置一个空行:

 <tr class="spacer"><td></td></tr> 

然后使用CSS来给隔片行一定的高度和透明的背景。

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

HTML:

 <tr class="separator" /> 

CSS:

 table tr.separator { height: 10px; } 

来自Mozilla开发者networking :

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

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

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

UPDATE

我现在明白,OP希望特定的,单独的行增加间距。 我添加了一个tbody元素的设置,可以在不破坏语义的情况下完成。 但是,我不确定是否在所有浏览器上都支持。 我在Chrome中创build。

下面的例子是为了展示你如何使它看起来像表中存在的单行,充分吹捧的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; } 
 <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> 

您不能更改表格单元格的边距。 但是你可以改变填充。 改变TD的填充,这将使单元格更大,并使用增加的填充将文本从侧面推开。 如果你有边界线,但是,它仍然不会是你想要的。

好的,你可以做

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

确保背景颜色设置在td而不是行上。 这应该适用于大多数浏览器…(Chrome,即经过testing)

你需要设置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> 

您可以在表格中使用行高

 <table style="width: 400px; line-height:50px;"> 
 tr { display: block; margin-bottom: 5px; } 

答案太晚了:)

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

 table tr{ float: left width: 100%; } tr.classname { margin-bottom:5px; } 

为了创build行之间的间距错觉,应用背景颜色行,然后创build一个白色的厚边框,以便创build一个“空间”:)

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

为表格分配空间的正确方法是使用cellpadding和cellspacing

 <table cellpadding="4"> 

在遇到类似的问题时,我偶然发现了这个问题。 我发现Varun Natraaj的答案是相当有帮助的,但我会使用一个透明的边框。

 td { border: 1em solid transparent; } 

透明的边框仍然有宽度。

适用于2015年最新的浏览器。简单的解决scheme。 它不适用于透明,但与Thoronwen的回答不同,我无法透明地渲染任何尺寸。

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

简单的把div放在td中,并设置div的下列样式:

 margin-bottom: 20px; height: 40px; float: left; width: 100%; 

我意识到这是一个老的线程的答案,可能不是所要求的解决scheme,但虽然所有build议的解决scheme没有做我所需要的,这个解决scheme为我工作。

我有2个表格单元格,一个背景颜色,另一个边框颜色。 上面的解决scheme删除了​​边界,所以右侧的单元格将显示为在半空中浮动。 这个技巧的解决scheme是用div和相应的类来replacetabletrtd :table是div id="table_replacer" ,tr是div class="tr_replacer" ,td是div class="td_replacer" (显然,更改closures标签为div)

为了得到解决我的问题的CSS是:

 #table_replacer{display:table;} .tr_replacer {border: 1px solid #123456;margin-bottom: 5px;}/*DO NOT USE display:table-row! It will destroy the border and the margin*/ .td_replacer{display:table-cell;} 

希望这有助于某人。

您可以使用<div />元素填充<td />元素,并将任何边距应用于您喜欢的div。 对于行之间的视觉空间,可以在<tr />元素上使用重复的背景图像。 (这是我今天刚刚使用的解决scheme,似乎可以在IE6和FireFox 3上运行,但我没有进一步testing。)

另外,如果你不愿修改你的服务器代码把<div>放在<td /> s中,你可以使用jQuery(或类似的东西)dynamic地将<td / >,使您能够根据需要应用CSS。

或者只是在要添加间距的行之间添加一个空白的边缘高度

这里工作顺利:

 #myOwnTable td { padding: 6px 0 6px 0;} 

我想你可以通过指定哪个td来制定更细致的布局。

这样做如上所示…

 table tr{ float: left width: 100%; } tr.classname { margin-bottom:5px; } 

删除垂直列alignment,所以要小心你如何使用它

你有没有尝试过:

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

或者,每个td也可以调整:

 td.classname { margin-bottom:5em; } 

要么

  td.classname { padding-bottom:5em; }