table { table-layout: fixed; }
要控制高度處的div TDS的內部調整的div的高度
這article非常全面
var mid = document.querySelector('.center');
var up = document.getElementById('up');
up.addEventListener('click', function(e) {
mid.style.height = "200px";
}, false);
table {
table-layout: fixed;
border: 3px solid blue;
border-collapse: collapse;
border-spacing: 0;
width: 90%;
}
th {
border: 1px dashed green;
}
td {
border: 1px solid black;
}
div {
border: 1px dashed red;
min-height: 50px;
}
.center {
width: 100%;
height: 100px;
min-height: 100px;
max-height: 200px;
}
<button id="up">UP</button>
<table>
<thead>
<tr>
<th>
<div></div>
</th>
<th>
<div></div>
</th>
<th>
<div></div>
</th>
</tr>
<thead>
<tbody>
<tr>
<td>
<div></div>
</td>
<td>
<div></div>
</td>
<td>
<div></div>
</td>
</tr>
<tr>
<td>
<div></div>
</td>
<td>
<div class="center"></div>
</td>
<td>
<div></div>
</td>
</tr>
<tr>
<td>
<div></div>
</td>
<td>
<div></div>
</td>
<td>
<div></div>
</td>
</tr>
</tbody>
</table>
對不起,我無法弄清楚如何能行得通。問題是tbody是動態填充的。如果過濾器匹配沒有記錄,則可能根本沒有tr。或者,我應該只使用javascript強制在tbody中插入空白行? – gm2008
@ gm2008我不認爲「tbody」是需要關注的元素,表格是面向內容的。 'tbody'永遠不會觸及內容。看看我的演示,你會看到中間單元格的內容在高度上增加,表格將適應它。 – zer00ne
*或者我應該只使用JavaScript來在tbody中強制插入空白行?*如果您獲得動態生成的表格,CSS仍會影響它。我必須處理那些蹩腳的表格,我使用80%CSS和20%JS/jQ。 – zer00ne