粘性标题后面的内容在可滚动表中可见

Posted

技术标签:

【中文标题】粘性标题后面的内容在可滚动表中可见【英文标题】:Content behind sticky header is visible in scrollable table 【发布时间】:2021-03-17 02:49:39 【问题描述】:

当前问题看起来像这样 如图所示,内容滚动到页眉后面时,还是有一点点可见的。我如何解决这个问题并在粘性标题后面滚动时使内容不可见?

.tableUpdates 
        overflow-y: auto;
        height: 250px;
    

    .tableUpdates thead th 
        position: sticky;
        margin-top:0px;
        top: 0;
        background: #DC3545;
    
<div class="col-md-4 pr-0 tableUpdates">
    <table class="table table-bordered table-hover">

           <thead class="bg-danger text-light">
               <tr>
                  <th>Header</th>
               </tr>
            </thead>
            
            <tbody>
               .....some rows
            </tbody>
    </table>
</div>


    

【问题讨论】:

可以在通用选择器中添加0的边距和内边距 @ShayanKanwal 在添加 0 的边距和填充后问题仍然存在。 【参考方案1】:

将粘性标题沿内容显示的方向移动一个像素或 2 个像素。因此,如果粘性标题从顶部显示内容。只需在 css 中使用 top 将标题向上移动一点。这应该移动您的标题,以便内容不会泄漏。

【讨论】:

你是怎么做到的?【参考方案2】:

不使用位置作为粘性

将类添加到th

<div class="col-md-4 pr-0 tableUpdates">
<table class="table table-bordered table-hover">

       <thead class="bg-danger text-light">
           <tr>
              <th class="sitck-nav">Header</th>
           </tr>
        </thead>
        
        <tbody>
           .....some rows
        </tbody>
</table>
</div>

将css添加到类stick-nav

.tableUpdates 
    overflow-y: auto;
    height: 250px;


.tableUpdates thead th 
    margin-top:0px;
    top: 0;
    background: #DC3545;

.stick-nav 
   position:'fixed' # fixed the nav bar positon
   z-index:999  # hide the content

【讨论】:

【参考方案3】:

这是 tableth 元素的奇怪怪癖。如果任一元素有上边框,您将获得此行为。边框实际上会滚动并且不会粘住,留下那个间隙。

一个技巧是覆盖 border-top 以使 tableth 元素的宽度都为 0。

CSS

#myTable 
    border-top: 0 solid black;


#myHeader 
    border-top: 0 solid black;

html

<div class="col-md-4 pr-0 tableUpdates">
    <table id="myTable" class="table table-bordered table-hover">

           <thead class="bg-danger text-light">
               <tr>
                  <th id="myHeader">Header</th>
               </tr>
            </thead>
            
            <tbody>
               .....some rows
            </tbody>
    </table>
</div>

当然,那你就没有上边框了……

【讨论】:

以上是关于粘性标题后面的内容在可滚动表中可见的主要内容,如果未能解决你的问题,请参考以下文章

如何创建滚动后固定在顶部的粘性导航栏

带图像的 Bootstrap 粘性页脚

带有滚动背景的粘性标题

是否可以只滚动图像而不是整个站点而没有位置:粘性?

iOS - 带有内容插入的粘性标题 - 标题视图不像单元格那样滚动

react-virtualized 中的粘性标题