我是网络编程的新手,所以我可能在这里犯了一些明显的错误。
当我试图从像 rows[i].style.display = 'none' 这样的 javascript 中隐藏表格中的一行时,表格布局完全被破坏了。最初,单元格内容被包裹,表格宽度被缩小。然后我在表格标签中添加了 style="table-layout:fixed" 并在每个 td 中添加了 style="white-space:nowrap"。这停止了换行,但内容仍然没有在一行上对齐。如果空间和列宽从一行到另一行不同,则单元格开始向左移动。然后,我为每个 th 和 td 元素以及包含表格的 div 添加了一个固定宽度。问题仍然存在。
我当前的 HTML 类似于以下内容。
<div style="width: 300px">
<table id="errorTable" width="100%" cellpadding="5" cellspacing="2" style="table-layout: fixed">
<tr id="HeaderRow">
<th style="width: 100px;">Header 1</th>
<th style="width: 50px;">Header 2</th>
<th style="width: 150px;">Header 3</th>
</tr>
<tr id="DetailRow1">
<td style="white-space:nowrap; width: 100px;">Data 1_1 in Row 1</td>
<td style="white-space:nowrap; width: 50px;">Data 1_2 in Row 1</td>
<td style="white-space:nowrap; width: 150px;">Data 1_3 in Row 1</td>
</tr>
<tr id="DetailRow2">
<td style="white-space:nowrap; width: 100px;">Data 2</td>
<td style="white-space:nowrap; width: 50px;">Data 2</td>
<td style="white-space:nowrap; width: 150px;">Data 2</td>
</tr>
<tr id="DetailRow3">
<td style="white-space:nowrap; width: 100px;">Data 3_1</td>
<td style="white-space:nowrap; width: 50px;">Data 3_2</td>
<td style="white-space:nowrap; width: 150px;">Data 3_3</td>
</tr>
</table>
</div>
第一次显示表格时,列正确对齐,宽度分别为 100、50 和 150 像素。但是如果一行,比如第二行被隐藏,剩下的两行显示的单元格宽度不再固定为 100、50 和 150,并且数据不再垂直对齐。请注意,整个表格宽度仍为 300 像素。如果有可用空间,则每个单元格中的数据向左移动,并且最后一列(在本例中为第三列)使用了额外的空间。
如您所见,以下帖子很有帮助,但并没有完全解决我的问题。 隐藏表格行而不调整整体宽度
任何帮助都将受到欢迎。