2009-05-28 84 views
5

我有一个空的表格行,仅用于行之间的分隔。如果所有单元格都为空,是否会显示一个表格行?

<tr> 
    <td colspan="5"></td> 
</tr> 

它在IE,FF,Opera和Safari中呈现。问题是,我是否应该在其中放置一些内容,或者将其保留原样好吗?

像:

<tr> 
    <td colspan="5">&nbsp;</td> 
</tr> 
+0

使用空行进行间隔会破坏您的数据结构。 您可能会更好地将各种数据块包装到adad或tbody元素中,并将它们设计为实现间距。 – Quentin 2009-05-28 08:39:32

回答

11

那么你可以把一个&nbsp;作为列内容,以确保显示的行。更好的方法是使用CSS进行间隔。

+1

+1你应该真的使用CSS来做这件事 – 2009-05-28 08:13:21

+1

CSS将不起作用。我也希望填充背景颜色的单元格,同时让分隔符保持白色。如果我将填充物放到细胞上,填充区域也会被填充。我不想那样。 – User 2009-05-28 08:51:22

0

您可能已经尝试过,但如果您尝试在行之间添加一些空间,您是否尝试添加一些填充。

CELLSPACING =长度(单元格间距)

CELLPADDING =长度(细胞内的间距)

卡尔

1

,如果你想要把里面的内容,我会用一个没有打破空间:&nbsp;,而不是一个普通的空白

6

从语义上讲,空行是用于某个目的,还是纯粹用于布局?如果是后者,可能需要考虑删除空行,并通过CSS提供分隔。例如。

<tr class="separate-below"> 
    <td>Data before separater</td><td>More Data</td>... 
</tr> 
<tr> 
    <td>Data after separater</td><td>More Data</td>... 
</tr> 

随着在样式表中执行以下操作:

TR.separate-below TD,TR.separate-below TH { 
    border-bottom: 1em solid white; /* use the background colour of a cell here */ 
} 

或者,也可以使用多个<TBODY>元件行的组块一起(添加规则=“基团”的表元素导致<tbody>元素在顶部和底部获得水平边框,而<colgroup>元素获得左右边框):

<table rules="groups"> 
<thead> 
    <tr><th>Header</th><th>Header</th>...</tr> 
</thead> 
<tbody> 
    <tr><td>Data</td><td>Data</td>...</tr> 
    <tr><td>Data</td><td>Data</td>...</tr> 
    ... 
</tbody> 
<tbody> 
    <tr><td>Data</td><td>Data</td>...</tr> 
    ... 
</tbody> 
... 
</table> 
3

正如您在W3Schools的this example中看到的那样,使用&nbsp;是实现您想要的最佳方式。

+0

1. w3fools,2. link rot。除此之外,我并不反对` `表格单元格。 – vaxquis 2017-10-22 21:48:56

0

为了确保空单元格显示以下可以使用CSS:

table { empty-cells:show; } 
0

您可以使用多个tbody标签组表行。这是完全有效的和更多的语义。

1

这是一个很古老的问题,但如果有人仍然需要一个解决方案(与display: table-celltable-row elements存在问题)

这里的解决方案:

.emptyElement:after{ 
    content: "\00a0"; 
} 
1

我想补充我的解决方案,它是一个修改@Dariusz Sikorski解决方案。

td:empty:after, th:empty:after { 
    content: "\00a0"; 
} 
相关问题