###前提・実現したいこと
- Bootstpra3を使用
- テーブルのヘッダー行を固定し、データ部分を縦スクロールさせたい
###発生している問題・エラーメッセージ
ヘッダーとデータ項目の行頭が揃わない
###該当のソースコード
html
1 <table class="table table-fixed"> 2 <thead> 3 <tr> 4 <th class="col-xs-2">aaa</th> 5 <th class="col-xs-4">bbb</th> 6 <th class="col-xs-4">ccc</th> 7 <th class="col-xs-1">ddd</th> 8 <th class="col-xs-1">eee</th> 9 </tr> 10 </thead> 11 <tbody> 12 <tr> 13 <td class="col-xs-2">aaa</td> 14 <td class="col-xs-4">bbb</td> 15 <td class="col-xs-4">ccc</td> 16 <td class="col-xs-1">ddd</td> 17 <td class="col-xs-1">eee</td> 18 </tr> 19 <tr> 20 <td class="col-xs-2">aaa</td> 21 <td class="col-xs-4">bbb</td> 22 <td class="col-xs-4">ccc</td> 23 <td class="col-xs-1">ddd</td> 24 <td class="col-xs-1">eee</td> 25 </tr> 26 <tr> 27 <td class="col-xs-2">aaa</td> 28 <td class="col-xs-4">bbb</td> 29 <td class="col-xs-4">ccc</td> 30 <td class="col-xs-1">ddd</td> 31 <td class="col-xs-1">eee</td> 32 </tr> 33 </tbody> 34 </table>
css
1.table-fixed thead { 2 width: 97%; 3} 4.table-fixed tbody { 5 height: 230px; 6 overflow-y: auto; 7 width: 100%; 8} 9.table-fixed thead, .table-fixed tbody, .table-fixed tr, .table-fixed td, .table-fixed th { 10 display: block; 11 box-sizing: border-box; 12} 13.table-fixed tbody td, .table-fixed thead > tr> th { 14 float: left; 15 border-bottom-width: 0; 16 box-sizing: border-box; 17}
###試したこと
tdに付加されているpadding,marginが原因かと思いいろいろ試し、原因は「見出し項目」と「データ項目」の横幅が異なっていることにあるところまで分かりました。
あと、
css
1.table-fixed thead, .table-fixed tbody, .table-fixed tr, .table-fixed td, .table-fixed th { 2 display: block; 3 box-sizing: border-box; 4}
のdisplay: block;
を解除すると、スクロール機能が効かなくなるが、行頭は揃うことも分かりました。
なぜこのような挙動になるのか?また、その修正方法が分かりません。
###補足情報(言語/FW/ツール等のバージョンなど)
下記のソースを参考にしております。
"Fixed Header Scrolling Table"
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/05/04 11:06