设置表格行高


135

我有以下代码:

<table class="topics" >
    <tr>
        <td style="white-space: nowrap; padding: 0 5px 0 0; color:#3A5572; font-weight: bold;">Test</td>
        <td style="padding: 0 4px 0 0;">1.0</td>
        <td>abc</td>
    </tr>
    <tr>

        <td style="white-space: nowrap; padding: 0 5px 0 0; color:#3A5572; font-weight: bold;">test2</td>
        <td style="padding: 0 4px 0 0;">1.3</td>
        <td>def</td>
    </tr>
</table>

行之间的距离太远。我希望线条更紧密。

我所做的是添加以下CSS,但似乎没有任何改变。

.topics tr { height: 14px; }

我究竟做错了什么?


Answers:


163

试试这个:

.topics tr { line-height: 14px; }


160
我不明白为什么会有这么多的选票,但不能解决问题。仅当中只有1行文字时,此功能才有效tr。此解决方案设置线条高度,而不是tr高度。
BenR 2014年

2
如后面的评论中所述。高度必须大于最大内容的高度。否则,它将仅使用最大内容的高度作为最小高度。是的,这仅适用于一行文本。
Varun Chatterji

1
仅在一行文本时有用。
shekhardtu

23

尝试为此设置属性td

.topic td{ height: 14px };


1
认真吗?我以为这将一直有效。现在肯定是这样。无论如何,这是我发现最好的解决方案,因为表单元格的工作方式是扩展其内容。所以heighttd有效最小高度,在这种情况下,实际上是你想要的东西
Simon_Weaver

@dave就我而言,仅@dave的解决方案有效。line-height不适用于trtd。由于原始帖子已有6年历史,并且由于大多数浏览器现在都在使用HTML5,因此某些html / css规则现在可能已更改,因此不确定是否与时间有关。

另外,根据我的经验,如果您在tr上设置一个高度,然后在其中的td上设置一个100%的高度或任何高度,我相信系统会认为该高度是在td上设置的,并且不会跟随该高度tr并将行设置为默认高度。因此,只需在td上设置高度即可。这就是我赞成此答案的原因
user3245268 '19

9

如果border-collapse: collapse;在表上放置CSS语句,则也可以删除一些额外的间距。


6

我发现针对我的目的的最佳答案是使用:

.topics tr { 
    overflow: hidden;
    height: 14px;
    white-space: nowrap;
}

white-space: nowrap很重要,因为它可以防止行的单元格跨越多行。

我个人喜欢添加text-overflow: ellipsisthtd元素中,例如通过添加结尾的句号使溢出的文本看起来更好Too long gets dots...


5

line-height仅在大于内容的当前高度时才起作用<td>。因此,如果表格中有一个50x50的图标,tr行高不会使行小于50px(+填充)。

由于您已经将填充设置为0其他值,
例如,内部的大字体大小td大于14px。


5

如果您使用的是Bootstrap,请查看paddingtd的。


1

一旦我需要通过使用内联CSS来固定特定值行的高度,如下所示。

<tr><td colspan="4" style="height: 10px;">xxxyyyzzz</td></tr>

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.