列の幅が動的に変更される HTML テーブルを作成しようとしています。テーブルの幅がコンテナーよりも大きくなると、水平スクロールバーが表示されます。
ただし、これを機能させることができないようです-コンテナの幅を設定すると、テーブルの上限として機能し、列の幅を明示的に(CSSまたはJqueryを使用して)設定しても、テーブルは表示を拒否します正しい幅。「overflow:scroll」を設定しても、スクロールバーがアクティブになりません。
列幅が小さくなると、テーブル幅も小さくなるはずです。そのため、テーブル幅 = 100% を使用できません。
注: 列の幅が変更されるたびに表の幅を明示的に設定すると (例: 表の幅 = 500px)、この問題を回避できることがわかっています。もっとエレガントな解決策があることを願っています...
コードは次のとおりです。
JFiddle : http://jsfiddle.net/sangil/NdY22/
HTML
<div class="container">
<table>
<thead>
<tr>
<th class="a">th 1</th>
<th>th 2</th>
</tr>
</thead>
<tbody>
<tr>
<td>td 1</td>
<td>td 2</td>
</tr>
</tbody>
</table>
</div>
CSS
table {
table-layout: fixed;
border: 1px solid black;
border-collapse: collapse;
}
table td {
border: 1px solid black;
}
table th {
border: 1px solid black;
background-color: lightsteelblue;
}
.container{
border: 1px solid lightsteelblue;
width: 300px;
overflow: auto;
}
JS
$(function() {
$('.a').width(500);
});
</p>