テーブルのthead要素を固定する
この記事は最終更新日から6年以上経過しています。
直近の案件でテーブルのヘッダを固定したいという要望が出てjsを書いてみたんだけど、実装方法に色々な方法があって悩んだ。
いくつか紹介されているthead
のclone()
を作成して画面上部に固定する方法だと、tablesorterやチェックボックスなどのjsで機能が追加されている要素が機能しなくなってしまうし、tbody
にoverflow
を使用する方法は右上の余白が気になるし、あと固定できる範囲がテーブルのエリア内だけなのでthead
をウィンドウの上部にfixed
で固定したい際には使用できない。
というのがあって結局、
thead
要素をfixed
、もしくはabsolute
で固定- テーブル幅固定用の非表示要素として
thead
要素をclone()
thead
要素のセルの幅はposition
を変更すると変わってしまうのでjsでcss幅だけコピーする
という方法をとった。
thead
が2つになるのはなんだか気持ち悪いのだけど、一応必要無い要素である事を示すarea-hidden
をつけているのでアクセシビリティ的には大丈夫かなと思っている。
ついでなのでこれもjQueryのプラグインにしておいた。
Comment
comments powered by Disqus