如何使表头位置固定在顶部?

huangapple go评论69阅读模式
英文:

How to make table head position sticky at the top?

问题

我有一个可以滚动的表格,我在 https://mdbootstrap.com/docs/b4/jquery/tables/scroll/ 上使用了"静态表格垂直滚动"的示例代码,它运行正常,但我希望表头保持在顶部,或者是否有办法只在主体部分滚动而不是整个表格。

<div class="table-wrapper-scroll-y my-custom-scrollbar" style="max-height: 444px;">
<table class="table">
<thead>
<tr>
<th scope="col">ID</th>
<th scope="col">公司名称</th>
<th scope="col">用户名</th>
<th scope="col">邮箱</th>
<th scope="col">地址</th>
</tr>
</thead>
<tbody>
@foreach($clients as $client)
<tr>
<td>{{ $client->id }}</td>
<td>{{ $client->company_name }}</td>
<td>{{ $client->user->username }}</td>
<td>{{ $client->user->email }}</td>
<td>{{ $client->user->address }}</td>
</tr>
@endforeach
</tbody>
</table>
</div>


.my-custom-scrollbar {
position: relative;
max-height: 400px;
overflow: auto;
}

.table-wrapper-scroll-y {
display: block;
}


我尝试了以下代码但没有成功:

.table-wrapper-scroll-y thead th {
position: sticky;
top: 0;
z-index: 1;
}

英文:

I have a scrollable table, I used "Static table vertical scroll" example code on https://mdbootstrap.com/docs/b4/jquery/tables/scroll/, it's working fine but I want the header to stay sticked to the top, or if there is any way to make the scroll only on the body not the whole table

&lt;div class=&quot;table-wrapper-scroll-y my-custom-scrollbar&quot; style=&quot;max-height: 444px;&quot;&gt;
    &lt;table class=&quot;table&quot;&gt;
        &lt;thead&gt;
        &lt;tr&gt;
            &lt;th scope=&quot;col&quot;&gt;ID&lt;/th&gt;
            &lt;th scope=&quot;col&quot;&gt;Company Name&lt;/th&gt;
            &lt;th scope=&quot;col&quot;&gt;Username&lt;/th&gt;
            &lt;th scope=&quot;col&quot;&gt;Email&lt;/th&gt;
            &lt;th scope=&quot;col&quot;&gt;Address&lt;/th&gt;
        &lt;/tr&gt;
        &lt;/thead&gt;
        &lt;tbody&gt;
        @foreach($clients as $client)
            &lt;tr&gt;
                &lt;td&gt;{{ $client-&gt;id }}&lt;/td&gt;
                &lt;td&gt;{{ $client-&gt;company_name }}&lt;/td&gt;
                &lt;td&gt;{{ $client-&gt;user-&gt;username }}&lt;/td&gt;
                &lt;td&gt;{{ $client-&gt;user-&gt;email }}&lt;/td&gt;
                &lt;td&gt;{{ $client-&gt;user-&gt;address }}&lt;/td&gt;
            &lt;/tr&gt;
        @endforeach
        &lt;/tbody&gt;
    &lt;/table&gt;
&lt;/div&gt;
.my-custom-scrollbar {
    position: relative;
    max-height: 400px;
    overflow: auto;
}

.table-wrapper-scroll-y {
    display: block;
}

I tried this with no success

.table-wrapper-scroll-y thead th {
    position: sticky;
    top: 0;
    z-index: 1;
}

答案1

得分: 1

<!-- begin snippet: js hide: false console: true babel: false -->

<!-- language: lang-css -->
.table-wrapper-scroll-y thead th {
    position: sticky;
    top: 0;
    z-index: 1;
    background: #fff;
}
th, td {
    padding: 10px;
}

<!-- language: lang-html -->
<div class="table-wrapper-scroll-y my-custom-scrollbar" style="max-height: 444px;">
    <table class="table">
        <thead>
            <tr>
                <th>ID</th>
                <th>Company Name</th>
                <th>Username</th>
                <th>Email</th>
                <th>Address</th>
            </tr>
        </thead>
        <tbody>
            <tr>
                <td>1</td>
                <td>test</td>
                <td>jems</td>
                <td>test@gmail.com</td>
                <td>test</td>
            </tr>
            <tr>
                <td>1</td>
                <td>test</td>
                <td>jems</td>
                <td>test@gmail.com</td>
                <td>test</td>
            </tr>
            <tr>
                <td>1</td>
                <td>test</td>
                <td>jems</td>
                <td>test@gmail.com</td>
                <td>test</td>
            </tr>
            <tr>
                <td>1</td>
                <td>test</td>
                <td>jems</td>
                <td>test@gmail.com</td>
                <td>test</td>
            </tr>
            <tr>
                <td>1</td>
                <td>test</td>
                <td>jems</td>
                <td>test@gmail.com</td>
                <td>test</td>
            </tr>
            <tr>
                <td>1</td>
                <td>test</td>
                <td>jems</td>
                <td>test@gmail.com</td>
                <td>test</td>
            </tr>
            <tr>
                <td>1</td>
                <td>test</td>
                <td>jems</td>
                <td>test@gmail.com</td>
                <td>test</td>
            </tr>
            <tr>
                <td>1</td>
                <td>test</td>
                <td>jems</td>
                <td>test@gmail.com</td>
                <td>test</td>
            </tr>
            <tr>
                <td>1</td>
                <td>test</td>
                <td>jems</td>
                <td>test@gmail.com</td>
                <td>test</td>
            </tr>
        </tbody>
    </table>
</div>

<!-- end snippet -->
英文:

<!-- begin snippet: js hide: false console: true babel: false -->

<!-- language: lang-css -->

.table-wrapper-scroll-y thead th {
    position: sticky;
    top: 0;
    z-index: 1;
    background: #fff;
}
th, td {
    padding: 10px;
}

<!-- language: lang-html -->

&lt;div class=&quot;table-wrapper-scroll-y my-custom-scrollbar&quot; style=&quot;max-height: 444px;&quot;&gt;
    &lt;table class=&quot;table&quot;&gt;
        &lt;thead&gt;
        &lt;tr&gt;
            &lt;th&gt;ID&lt;/th&gt;
            &lt;th&gt;Company Name&lt;/th&gt;
            &lt;th&gt;Username&lt;/th&gt;
            &lt;th&gt;Email&lt;/th&gt;
            &lt;th&gt;Address&lt;/th&gt;
        &lt;/tr&gt;
        &lt;/thead&gt;
        &lt;tbody&gt;
            &lt;tr&gt;
                &lt;td&gt;1&lt;/td&gt;
                &lt;td&gt;test&lt;/td&gt;
                &lt;td&gt;jems&lt;/td&gt;
                &lt;td&gt;test@gmail.com&lt;/td&gt;
                &lt;td&gt;test&lt;/td&gt;
            &lt;/tr&gt;
            &lt;tr&gt;
                &lt;td&gt;1&lt;/td&gt;
                &lt;td&gt;test&lt;/td&gt;
                &lt;td&gt;jems&lt;/td&gt;
                &lt;td&gt;test@gmail.com&lt;/td&gt;
                &lt;td&gt;test&lt;/td&gt;
            &lt;/tr&gt;
            &lt;tr&gt;
                &lt;td&gt;1&lt;/td&gt;
                &lt;td&gt;test&lt;/td&gt;
                &lt;td&gt;jems&lt;/td&gt;
                &lt;td&gt;test@gmail.com&lt;/td&gt;
                &lt;td&gt;test&lt;/td&gt;
            &lt;/tr&gt;
            &lt;tr&gt;
                &lt;td&gt;1&lt;/td&gt;
                &lt;td&gt;test&lt;/td&gt;
                &lt;td&gt;jems&lt;/td&gt;
                &lt;td&gt;test@gmail.com&lt;/td&gt;
                &lt;td&gt;test&lt;/td&gt;
            &lt;/tr&gt;
            &lt;tr&gt;
                &lt;td&gt;1&lt;/td&gt;
                &lt;td&gt;test&lt;/td&gt;
                &lt;td&gt;jems&lt;/td&gt;
                &lt;td&gt;test@gmail.com&lt;/td&gt;
                &lt;td&gt;test&lt;/td&gt;
            &lt;/tr&gt;
            &lt;tr&gt;
                &lt;td&gt;1&lt;/td&gt;
                &lt;td&gt;test&lt;/td&gt;
                &lt;td&gt;jems&lt;/td&gt;
                &lt;td&gt;test@gmail.com&lt;/td&gt;
                &lt;td&gt;test&lt;/td&gt;
            &lt;/tr&gt;
            &lt;tr&gt;
                &lt;td&gt;1&lt;/td&gt;
                &lt;td&gt;test&lt;/td&gt;
                &lt;td&gt;jems&lt;/td&gt;
                &lt;td&gt;test@gmail.com&lt;/td&gt;
                &lt;td&gt;test&lt;/td&gt;
            &lt;/tr&gt;
            &lt;tr&gt;
                &lt;td&gt;1&lt;/td&gt;
                &lt;td&gt;test&lt;/td&gt;
                &lt;td&gt;jems&lt;/td&gt;
                &lt;td&gt;test@gmail.com&lt;/td&gt;
                &lt;td&gt;test&lt;/td&gt;
            &lt;/tr&gt;
            &lt;tr&gt;
                &lt;td&gt;1&lt;/td&gt;
                &lt;td&gt;test&lt;/td&gt;
                &lt;td&gt;jems&lt;/td&gt;
                &lt;td&gt;test@gmail.com&lt;/td&gt;
                &lt;td&gt;test&lt;/td&gt;
            &lt;/tr&gt;
        &lt;/tbody&gt;
    &lt;/table&gt;
&lt;/div&gt;

<!-- end snippet -->

答案2

得分: 0

如果你想要一个粘性头部,请将位置设置为sticky。这将在滚动时帮助实现固定的页眉。

<style>
th {
  position: sticky;
  top: 0;
  background: white;
}
</style>
英文:

If you want a sticky header then set the position to sticky. This will help to have a fixed header on scroll.

&lt;style&gt;

th{
position: sticky;
top: 0;
background: white;
}
&lt;/style&gt;

huangapple
  • 本文由 发表于 2023年2月23日 19:24:54
  • 转载请务必保留本文链接:https://go.coder-hub.com/75544170.html
匿名

发表评论

匿名网友

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定