【问题标题】:Sticky Table Header in overflow parent container with sticky top navigation bar带有粘性顶部导航栏的溢出父容器中的粘性表标题
【发布时间】:2021-08-26 22:45:57
【问题描述】:

我在容器内有一个表格,希望表格标题在滚动时粘贴在顶部导航(也是粘性的)下方。

我在这里有一个 Tailwind Playground:https://play.tailwindcss.com/OYFqCdJR6f

【问题讨论】:

  • 您的问题是一张桌子,但在您的 Tailwind Playground 中,您有两张桌子,而不是一张。是哪一个?
  • @Ken 最好是两个或更多。但如果它让事情变得更复杂,我可以用一张桌子逃脱......

标签: html css html-table tailwind-css


【解决方案1】:

它不起作用的原因是表头和导航这两个元素都设置为top: 0表头的顶部值必须与导航高度相同,在本例中为 5rem,以便它可以堆叠在导航的正下方,而不是在其下方。

我认为您可能还必须从包含您的表格的 div 中删除 class="overflow-x-scroll"

这是一个例子。

th {
  position: sticky;
  top: 5rem;
  background: white;
}
<link href="https://cdnjs.cloudflare.com/ajax/libs/tailwindcss/2.0.2/tailwind.min.css" rel="stylesheet" />
<div class="bg-gray-100 relative pb-20">
  <header class="sticky top-0 flex items-center justify-center bg-gray-300 mb-10 h-20 z-50">Header goes here</header>
  <section class="max-w-xl mx-auto bg-white mb-20">
    <div>
      <table>
        <thead>
          <tr>
            <th>Sticky Header</th>
            <th>Sticky Header</th>
            <th>Sticky Header</th>
            <th>Sticky Header</th>
            <th>Sticky Header</th>
            <th>Sticky Header</th>
            <th>Sticky Header</th>
            <th>Sticky Header</th>
            <th>Sticky Header</th>
            <th>Sticky Header</th>
          </tr>
        </thead>
        <tbody>
          <tr>
            <td>Sticky Column</td>
            <td>Normal Column</td>
            <td>Normal Column</td>
            <td>Normal Column</td>
            <td>Normal Column</td>
            <td>Normal Column</td>
            <td>Normal Column</td>
            <td>Normal Column</td>
            <td>Normal Column</td>
            <td>Normal Column</td>
          </tr>
          <tr>
            <td>Sticky Column</td>
            <td>Normal Column</td>
            <td>Normal Column</td>
            <td>Normal Column</td>
            <td>Normal Column</td>
            <td>Normal Column</td>
            <td>Normal Column</td>
            <td>Normal Column</td>
            <td>Normal Column</td>
            <td>Normal Column</td>
          </tr>
          <tr>
            <td>Sticky Column</td>
            <td>Normal Column</td>
            <td>Normal Column</td>
            <td>Normal Column</td>
            <td>Normal Column</td>
            <td>Normal Column</td>
            <td>Normal Column</td>
            <td>Normal Column</td>
            <td>Normal Column</td>
            <td>Normal Column</td>
          </tr>
          <tr>
            <td>Sticky Column</td>
            <td>Normal Column</td>
            <td>Normal Column</td>
            <td>Normal Column</td>
            <td>Normal Column</td>
            <td>Normal Column</td>
            <td>Normal Column</td>
            <td>Normal Column</td>
            <td>Normal Column</td>
            <td>Normal Column</td>
          </tr>
          <tr>
            <td>Sticky Column</td>
            <td>Normal Column</td>
            <td>Normal Column</td>
            <td>Normal Column</td>
            <td>Normal Column</td>
            <td>Normal Column</td>
            <td>Normal Column</td>
            <td>Normal Column</td>
            <td>Normal Column</td>
            <td>Normal Column</td>
          </tr>
          <tr>
            <td>Sticky Column</td>
            <td>Normal Column</td>
            <td>Normal Column</td>
            <td>Normal Column</td>
            <td>Normal Column</td>
            <td>Normal Column</td>
            <td>Normal Column</td>
            <td>Normal Column</td>
            <td>Normal Column</td>
            <td>Normal Column</td>
          </tr>
          <tr>
            <td>Sticky Column</td>
            <td>Normal Column</td>
            <td>Normal Column</td>
            <td>Normal Column</td>
            <td>Normal Column</td>
            <td>Normal Column</td>
            <td>Normal Column</td>
            <td>Normal Column</td>
            <td>Normal Column</td>
            <td>Normal Column</td>
          </tr>
          <tr>
            <td>Sticky Column</td>
            <td>Normal Column</td>
            <td>Normal Column</td>
            <td>Normal Column</td>
            <td>Normal Column</td>
            <td>Normal Column</td>
            <td>Normal Column</td>
            <td>Normal Column</td>
            <td>Normal Column</td>
            <td>Normal Column</td>
          </tr>
          <tr>
            <td>Sticky Column</td>
            <td>Normal Column</td>
            <td>Normal Column</td>
            <td>Normal Column</td>
            <td>Normal Column</td>
            <td>Normal Column</td>
            <td>Normal Column</td>
            <td>Normal Column</td>
            <td>Normal Column</td>
            <td>Normal Column</td>
          </tr>
          <tr>
            <td>Sticky Column</td>
            <td>Normal Column</td>
            <td>Normal Column</td>
            <td>Normal Column</td>
            <td>Normal Column</td>
            <td>Normal Column</td>
            <td>Normal Column</td>
            <td>Normal Column</td>
            <td>Normal Column</td>
            <td>Normal Column</td>
          </tr>
          <tr>
            <td>Sticky Column</td>
            <td>Normal Column</td>
            <td>Normal Column</td>
            <td>Normal Column</td>
            <td>Normal Column</td>
            <td>Normal Column</td>
            <td>Normal Column</td>
            <td>Normal Column</td>
            <td>Normal Column</td>
            <td>Normal Column</td>
          </tr>
          <tr>
            <td>Sticky Column</td>
            <td>Normal Column</td>
            <td>Normal Column</td>
            <td>Normal Column</td>
            <td>Normal Column</td>
            <td>Normal Column</td>
            <td>Normal Column</td>
            <td>Normal Column</td>
            <td>Normal Column</td>
            <td>Normal Column</td>
          </tr>
          <tr>
            <td>Sticky Column</td>
            <td>Normal Column</td>
            <td>Normal Column</td>
            <td>Normal Column</td>
            <td>Normal Column</td>
            <td>Normal Column</td>
            <td>Normal Column</td>
            <td>Normal Column</td>
            <td>Normal Column</td>
            <td>Normal Column</td>
          </tr>
        </tbody>
      </table>
    </div>
  </section>
</div>

【讨论】:

  • 感谢您的回答@Ken - 非常感谢您的努力!不幸的是,overflow-x 提供的水平滚动是我不能放弃的必需功能。有机会让两者都工作吗?另请查看 Tailwind 游乐场示例中的 CSS 选项卡。水平滚动也有一个粘性列。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-02-12
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多