下記のような形で、テーブルヘッダを指定しています。
<table class="table table-border"> <thead> <tr class="table-title text-white"> <th scope="col" rowspan="2">word1</th> <th scope="col" rowspan="2">word2</th> <th scope="col" rowspan="2">word3</th> <th scope="col">word4</th> <th scope="col">word5</th> <th scope="col">word6</th> </tr> <tr class="table-title text-white"> <th scope="col">word7</th> <th scope="col" colspan="2">word8</th> </tr> </thead> <tbody> <tr class="bg-gray"> <td height="80" class="py-0" rowspan="2"> <div class="but-area d-flex justify-content-around"> <button type="button" >選択</button> </div> </td> <td height="80" class="py-0" id='AgentID' rowspan="2"></td> <td height="80" class="py-0" id='AgentName' rowspan="2"></td> <td height="40" class="py-0" id='OfficeName'></td> <td height="40" class="py-0"></td> <td height="40" class="py-0"></td> </tr> <tr class="bg-gray"> <td height="40" class="py-0"></td> <td height="40" class="py-0" colspan="2"></td> </tr> <tr class="bg-gray"> <td height="80" class="py-0" rowspan="2"> <div class="but-area d-flex justify-content-around"> <button type="button" >選択</button> </div> </td> <td height="80" class="py-0" id='AgentID' rowspan="2"></td> <td height="80" class="py-0" id='AgentName' rowspan="2"></td> <td height="40" class="py-0" id='OfficeName'></td> <td height="40" class="py-0"></td> <td height="40" class="py-0"></td> </tr> <tr class="bg-gray"> <td height="40" class="py-0"></td> <td height="40" class="py-0" colspan="2"></td> </tr> <tr class="bg-gray"> <td height="80" class="py-0" rowspan="2"> <div class="but-area d-flex justify-content-around"> <button type="button" >選択</button> </div> </td> <td height="80" class="py-0" id='AgentID' rowspan="2"></td> <td height="80" class="py-0" id='AgentName' rowspan="2"></td> <td height="40" class="py-0" id='OfficeName'></td> <td height="40" class="py-0"></td> <td height="40" class="py-0"></td> </tr> <tr class="bg-gray"> <td height="40" class="py-0"></td> <td height="40" class="py-0" colspan="2"></td> </tr> <tr class="bg-gray"> <td height="80" class="py-0" rowspan="2"> <div class="but-area d-flex justify-content-around"> <button type="button" >選択</button> </div> </td> <td height="80" class="py-0" id='AgentID' rowspan="2"></td> <td height="80" class="py-0" id='AgentName' rowspan="2"></td> <td height="40" class="py-0" id='OfficeName'></td> <td height="40" class="py-0"></td> <td height="40" class="py-0"></td> </tr> <tr class="bg-gray"> <td height="40" class="py-0"></td> <td height="40" class="py-0" colspan="2"></td> </tr> <tr class="bg-gray"> <td height="80" class="py-0" rowspan="2"> <div class="but-area d-flex justify-content-around"> <button type="button" >選択</button> </div> </td> <td height="80" class="py-0" id='AgentID' rowspan="2"></td> <td height="80" class="py-0" id='AgentName' rowspan="2"></td> <td height="40" class="py-0" id='OfficeName'></td> <td height="40" class="py-0"></td> <td height="40" class="py-0"></td> </tr> <tr class="bg-gray"> <td height="40" class="py-0"></td> <td height="40" class="py-0" colspan="2"></td> </tr> <tr class="bg-gray"> <td height="80" class="py-0" rowspan="2"> <div class="but-area d-flex justify-content-around"> <button type="button" >選択</button> </div> </td> <td height="80" class="py-0" id='AgentID' rowspan="2"></td> <td height="80" class="py-0" id='AgentName' rowspan="2"></td> <td height="40" class="py-0" id='OfficeName'></td> <td height="40" class="py-0"></td> <td height="40" class="py-0"></td> </tr> <tr class="bg-gray"> <td height="40" class="py-0"></td> <td height="40" class="py-0" colspan="2"></td> </tr> <tr class="bg-gray"> <td height="80" class="py-0" rowspan="2"> <div class="but-area d-flex justify-content-around"> <button type="button" >選択</button> </div> </td> <td height="80" class="py-0" id='AgentID' rowspan="2"></td> <td height="80" class="py-0" id='AgentName' rowspan="2"></td> <td height="40" class="py-0" id='OfficeName'></td> <td height="40" class="py-0"></td> <td height="40" class="py-0"></td> </tr> <tr class="bg-gray"> <td height="40" class="py-0"></td> <td height="40" class="py-0" colspan="2"></td> </tr> <tr class="bg-gray"> <td height="80" class="py-0" rowspan="2"> <div class="but-area d-flex justify-content-around"> <button type="button" >選択</button> </div> </td> <td height="80" class="py-0" id='AgentID' rowspan="2"></td> <td height="80" class="py-0" id='AgentName' rowspan="2"></td> <td height="40" class="py-0" id='OfficeName'></td> <td height="40" class="py-0"></td> <td height="40" class="py-0"></td> </tr> <tr class="bg-gray"> <td height="40" class="py-0"></td> <td height="40" class="py-0" colspan="2"></td> </tr> <tr class="bg-gray"> <td height="80" class="py-0" rowspan="2"> <div class="but-area d-flex justify-content-around"> <button type="button" >選択</button> </div> </td> <td height="80" class="py-0" id='AgentID' rowspan="2"></td> <td height="80" class="py-0" id='AgentName' rowspan="2"></td> <td height="40" class="py-0" id='OfficeName'></td> <td height="40" class="py-0"></td> <td height="40" class="py-0"></td> </tr> <tr class="bg-gray"> <td height="40" class="py-0"></td> <td height="40" class="py-0" colspan="2"></td> </tr> <tr class="bg-gray"> <td height="80" class="py-0" rowspan="2"> <div class="but-area d-flex justify-content-around"> <button type="button" >選択</button> </div> </td> <td height="80" class="py-0" id='AgentID' rowspan="2"></td> <td height="80" class="py-0" id='AgentName' rowspan="2"></td> <td height="40" class="py-0" id='OfficeName'></td> <td height="40" class="py-0"></td> <td height="40" class="py-0"></td> </tr> <tr class="bg-gray"> <td height="40" class="py-0"></td> <td height="40" class="py-0" colspan="2"></td> </tr> <tr class="bg-gray"> <td height="80" class="py-0" rowspan="2"> <div class="but-area d-flex justify-content-around"> <button type="button" >選択</button> </div> </td> <td height="80" class="py-0" id='AgentID' rowspan="2"></td> <td height="80" class="py-0" id='AgentName' rowspan="2"></td> <td height="40" class="py-0" id='OfficeName'></td> <td height="40" class="py-0"></td> <td height="40" class="py-0"></td> </tr> </tbody> </table> <style> .table-title { height: 40px !important; } .table-title th { padding: 0 !important; } .table thead th { border-top: 0; border-bottom: 0; } .table th { background-color: #707070; text-align: center; padding: 10px 0; font-weight: normal; } thead tr th { position: sticky; top: 0; } .table td, .table th { vertical-align: middle !important; } .table-border td, .table-border th { border: 1px solid #707070; } </style>
ヘッダの中が入れ子構造になっているからだと思いますが、
下記のようなテーブルヘッダを固定するcssを指定しても、
スクロール時に、word7,word8部分が固定されず、動いてしまいます。
thead tr th { position: sticky; top: 0; }
どのように指定すれば、入れ子構造のヘッダを固定することができるのでしょうか?
ご存知の方、教えてくださると幸いです。
よろしくお願いいたします。
【追記】
ブラウザ:chromeです。
よろしくお願いいたします。
下記を質問文修正で行ってください。
・HTMLは省略しないでください。
省略していないなら、theadを裸にしての記載はHTMLの文法違反なので、修正してください。(省略すると、第三者が再現できない、そもそも正しくレンダリングされない)
・対象ブラウザを記載してください。ブラウザによって実装方法変わる場合あります。
・参考にした記事があればリンクを記載してください。
あと、一つ目のtrの閉じはつけた方がいいかと。
(HTML5で許可されているものの、下のtrの閉じがある、他の要素の閉じがあるのとで統一した方がいい。
ブラウザによっては正しくレンダリングされないケースがある)
質問文は修正できるので、質問文に、上記を記載・実行してください。
回答1件
あなたの回答
tips
プレビュー