Я могу успешно скрыть некоторые ячейки таблицы, используя jQuery. Когда я затем измеряю высоту скрытой ячейки, пространство, которое занимала бы ячейка, если не скрыто, отображается как пустое пространство, толкая все оставшиеся ячейки в этой строке на один столбец. Это как если бы ячейка была повторно вставлена в поток таблицы, но ее содержимое скрыто. Пример ниже демонстрирует проблему. Нажмите «Скрыть столбец 2», а затем «Измерить строку 1, столбец 2», чтобы увидеть, как это происходит. Пример кода является автономным - просто сохраните его как файл HTML.
Это влияет на FF3 и Chrome, но не на IE7.
<html>
<head>
<script src="http://code.jquery.com/jquery-latest.js"></script>
<script type="text/javascript">
$(document).ready(function () {
$("a.clickToHide").click(function() {
$(".col2").hide();
});
$("a.clickToMeasure").click(function() {
$("span.result").text($("tr.row1 td.col2").height());
});
});
</script>
</head>
<body>
<table>
<thead>
<tr>
<th class="col1"> Column 1 </th>
<th class="col2"> Column 2 </th>
<th class="col3"> Column 3 </th>
</tr>
</thead>
<tbody>
<tr class="row1">
<td class="col1"> Column 1 </th>
<td class="col2"> Column 2 </th>
<td class="col3"> Column 3 </th>
</tr>
<tr class="row2">
<td class="col1"> Column 1 </th>
<td class="col2"> Column 2 </th>
<td class="col3"> Column 3 </th>
</tr>
</tbody>
</table>
<a class="clickToHide" href="#">Click to hide column 2</a> <br />
<a class="clickToMeasure" href="#">Click to measure row 1 column 2</a> <br />
<span class="result"></span>
</body>