隐藏表格行而不调整整体宽度

时间:2020-03-06 14:51:27  来源:igfitidea点击:

有没有一种方法可以隐藏表格行而不影响表格的整体宽度?我有一些显示/隐藏某些表行的javascript,但是当这些行设置为display:none;时,该表将缩小以适合可见行的内容。

解决方案

如果要保留表的整体宽度,则可以在隐藏行之前对其进行检查,然后将width样式属性显式设置为此值:

table.style.width = table.clientWidth + "px";
table.rows[3].style.display = "none";

但是,这可能会导致我们在隐藏行时对各个列进行重排。减轻这种情况的一种可能方法是在表格中添加样式:

table {
  table-layout: fixed;
 }

供参考,levik的解决方案可以完美地工作。就我而言,使用jQuery,解决方案如下所示:

$('#tableId').width($('#tableId').width());

在CSS中,表格上的table-layout:fixed;指示浏览器遵循我们为高度和宽度指定的尺寸。除非我们没有提供有关行和列的首选大小的任何提示,否则这通常会抑制浏览器自动调整大小。

我们可以使用纯HTML做到这一点

<table border="1">
<colgroup>
    <col width="150px" />
    <col width="10px"  />
    <col width="220px" />
</colgroup>
<tr>
    <td valign="top">1</td>
    <td> </td>
    <td>2</td>
</tr>
<tr>
    <td>3</td>
    <td> </td>
    <td>4</td>
</tr>
</table>