Home > Article > Web Front-end > How to make the table header not move in html
htmlThe method to realize that the table header does not move: first control the area where the content is to be scrolled in the tbody tag, and add the "overflow-y: auto;" style; then add "table-layout:" to the tr tag. fixed;" to fix the header.
The operating environment of this article: Windows7 system, HTML5&&CSS3 version, Dell G3 computer.
HTML table table fixed header tbody plus scroll bar
Pure CSS table table thead fixed tbody scrolling effect
Due to project needs, in the table , when the amount of data increases, scroll bars will appear, and during the scrolling process, the table header will scroll with the table content by default, resulting in the field names corresponding to the header not being visible, affecting the experience!
Implementation idea:
Control the area where the content is to be scrolled. Add overflow-y: auto; style to the tbody tag and give it to the tr tag. Add the table-layout:fixed; (this is the core) style. Since the tbody has a scroll bar, the scroll bar also needs to occupy space, which will cause the tbody and thead to be misaligned. Therefore, when setting the width of the tbody, the scroll bar must be The width is also added [If you don’t want to display the scroll bar, you can set the width of the scroll bar to 0px, and the scroll bar will disappear.
The following is the rendering, and the specific complete example code is also below:
Complete example code:
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta http-equiv="X-UA-Compatible" content="ie=edge"> <title>纯CSS table表格 thead固定 tbody滚动</title> <style> .table-box { margin: 100px auto; width: 1024px; } /* 滚动条宽度 */ ::-webkit-scrollbar { width: 8px; background-color: transparent; } /* 滚动条颜色 */ ::-webkit-scrollbar-thumb { background-color: #27314d; } table { width: 100%; border-spacing: 0px; border-collapse: collapse; } table caption{ font-weight: bold; font-size: 24px; line-height: 50px; } table th, table td { height: 50px; text-align: center; border: 1px solid gray; } table thead { color: white; background-color: #38F; } table tbody { display: block; width: calc(100% + 8px); /*这里的8px是滚动条的宽度*/ height: 300px; overflow-y: auto; -webkit-overflow-scrolling: touch; } table tfoot { background-color: #71ea71; } table thead tr, table tbody tr, table tfoot tr { box-sizing: border-box; table-layout: fixed; display: table; width: 100%; } table tbody tr:nth-of-type(odd) { background: #EEE; } table tbody tr:nth-of-type(even) { background: #FFF; } table tbody tr td{ border-bottom: none; } </style> </head> <body> <section> <table cellpadding="0" cellspacing="0"> <caption>纯CSS table表格 thead固定 tbody滚动</caption> <thead> <tr> <th>序 号</th> <th>姓 名</th> <th>年 龄</th> <th>性 别</th> <th>手 机</th> </tr> </thead> <tbody> <tr> <td>001</td> <td>Name</td> <td>28</td> <td>女</td> <td>Mobile</td> </tr> <tr> <td>002</td> <td>Name</td> <td>28</td> <td>男</td> <td>Mobile</td> </tr> <tr> <td>003</td> <td>Name</td> <td>28</td> <td>女</td> <td>Mobile</td> </tr> <tr> <td>004</td> <td>Name</td> <td>28</td> <td>男</td> <td>Mobile</td> </tr> <tr> <td>005</td> <td>Name</td> <td>28</td> <td>女</td> <td>Mobile</td> </tr> <tr> <td>006</td> <td>Name</td> <td>28</td> <td>男</td> <td>Mobile</td> </tr> <tr> <td>007</td> <td>Name</td> <td>28</td> <td>女</td> <td>Mobile</td> </tr> <tr> <td>008</td> <td>Name</td> <td>28</td> <td>男</td> <td>Mobile</td> </tr> </tbody> <tfoot> <tr> <td colspan="5">【table,thead,tbody,tfoot】 colspan:合并行, rowspan:合并列 </td> </tr> </tfoot> </table> </section> </body> </html>
[Recommended learning: html video tutorial]
The above is the detailed content of How to make the table header not move in html. For more information, please follow other related articles on the PHP Chinese website!