table
の中にあるpanel
の中にレンダリングするmodal
があります。テーブルは比較的大きいので、モーダルがスクロール可能にならないように、行を5に制限します。私はSO and googleを調べ、どこでも動作するようにoverflow-y:auto
またはoverflow-y:scroll
を設定する必要があることがわかりましたが、私の場合はそうではありませんまた、ランダムな高さ400pxとposition:absoluteを設定すると、テーブルはスクロール可能になりましたが、パネルは<thead>
で閉じられ、テーブルの本体はパネルの外側にレンダリングされます。
私のコードスニペットは:
<div class="modal fade">
<div class="modal-dialog " >
<div class="modal-content">
<div class="modal-body">
<div class="panel panel-default">
<div class="panel-body">
<table class="table table-bordered>
<thead>
[........]
</thead>
<tbody style="overflow-y:auto; height:400px; position:absolute>
[.......]
</tbody>
</table>
[...残りの</div>
s ...]
回答ありがとうございます。 <tbody>
が静的なままになるように、スクロールバーを<thead>
のみに絞り込む方法はありますか?
table-responsive
でラップし、max-heightを設定します。
.table-responsive {
max-height:300px;
}
デモはこちら
#collapse1{
overflow-y:scroll;
height:200px;
<link rel="stylesheet"
href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>
<div class="container">
<h2>Collapsible List with table</h2>
<div class="panel-group">
<div class="panel panel-default">
<div class="panel-heading">
<h4 class="panel-title">
<a data-toggle="collapse" href="#collapse1">Collapsible list group with table</a>
</h4>
</div>
<div id="collapse1" class="panel-collapse collapse">
<table class="table">
<thead>
<tr>
<th>Firstname</th>
<th>Lastname</th>
<th>Email</th>
</tr>
</thead>
<tbody >
<tr>
<td>John</td>
<td>Doe</td>
<td>[email protected]</td>
</tr>
<tr>
<td>John</td>
<td>Doe</td>
<td>[email protected]</td>
</tr>
<tr>
<td>John</td>
<td>Doe</td>
<td>[email protected]</td>
</tr>
<tr>
<td>John</td>
<td>Doe</td>
<td>[email protected]</td>
</tr>
<tr>
<td>John</td>
<td>Doe</td>
<td>[email protected]</td>
</tr>
<tr>
<td>John</td>
<td>Doe</td>
<td>[email protected]</td>
</tr>
<tr>
<td>John</td>
<td>Doe</td>
<td>[email protected]</td>
</tr>
<tr>
<td>Mary</td>
<td>Moe</td>
<td>[email protected]</td>
</tr>
<tr>
<td>July</td>
<td>Dooley</td>
<td>[email protected]</td>
</tr>
</tbody>
</table>
</div>
</div>
</div>
</div>
質問の例を挙げたら試してみてください
table,tr,th,td{
border:1px solid #dddddd;
border-collapse:collapse;
}
.tbl-header{
width:calc(100% - 17px);
width:-webkit-calc(100% - 17px);
width:-moz-calc(100% - 17px);
}
<div class="tbl-header">
<table style="width:100%;">
<thead>
<tr>
<th width="50%">1</th>
<th width="50%">2</th>
</tr>
</thead>
</table>
</div>
<div style="width:100%;overflow:auto; max-height:100px;">
<table style="width:100%;">
<tr>
<td width="50%">dsada</td>
<td width="50%">dsadas</td>
</tr>
<tr>
<td>dsada</td>
<td>dsadas</td>
</tr>
<tr>
<td>dsada</td>
<td>dsadas</td>
</tr>
<tr>
<td>dsada</td>
<td>dsadas</td>
</tr>
<tr>
<td>dsada</td>
<td>dsadas</td>
</tr>
<tr>
<td>dsada</td>
<td>dsadas</td>
</tr>
</table>
</div>