将滚动应用到 f​​lex 容器的特定部分

Posted

技术标签:

【中文标题】将滚动应用到 f​​lex 容器的特定部分【英文标题】:Applying scroll to specific section of flex container 【发布时间】:2020-12-06 18:36:22 【问题描述】:
<div class="flex flex-grow h-full w-100">
  <div class="flex flex-col bg-white w-1/5">
    <div class="dates px-4">
      <p>Today</p>
      <p>Tomorrow</p>
      <p>Upcoming</p>
    </div>
    <hr />
    <div class="projects flex-grow px-4">
      <p>Project 1</p>
      <p>Project 2</p>
    </div>
    <div class="footer">
      <hr />
      <button class="outline-none py-2 border-gray-400 text-red-400 w-full">
        Add project
      </button>
    </div>
  </div>
  <div class="main bg-gray-100 flex-grow">Hello</div>
  <div class="bg-white w-1/5">Hello</div>
</div>

在上面的代码中,我希望只有 projects 类的 div 可以滚动,同时将 datesfooter 固定在它们的位置上。如何使用 tailwind.css 做到这一点?!我还希望 main 类的 div 可以垂直滚动,同时将其他两个 div 固定在它们的位置而不滚动。

【问题讨论】:

【参考方案1】:

这听起来有点像overflow-y 的常用用法。

例如,您可以将此CSS 规则添加到项目的类中:

.projects 
   overflow-y: scroll;

您可以将此规则添加到您希望可滚动的任何容器中 - 在这种情况下是垂直的。


另一方面,overflow-x: scroll 用于水平滚动,overflow: scroll 用于两者(简写)。

【讨论】:

【参考方案2】:

根据tailwind overflow guide,可以使用.overflow-y-auto进行垂直滚动。

例如 &lt;div class="projects flex-grow overflow-y-auto px-4"&gt;

您使用.flex-grow 很好,否则您必须为 div 指定最大高度。

【讨论】:

【参考方案3】:
<div class="flex flex-grow h-full w-100">
  <div class="flex flex-col bg-white w-1/5">
    <div class="dates px-4">
      <p>Today</p>
      <p>Tomorrow</p>
      <p>Upcoming</p>
    </div>
    <hr/>
    <div class="projects h-auto overflow-x-auto flex-grow px-4">
      <p>Project 1</p>
      <p>Project 2</p>
    </div>
    <div class="footer">
      <hr/>
      <button class="outline-none py-2 border-gray-400 text-red-400 w-full">
        Add project
      </button>
    </div>
  </div>
  <div class="main bg-gray-100 flex-grow">Hello</div>
  <div class="bg-white w-1/5">Hello</div>
</div>

【讨论】:

您的答案可以通过额外的支持信息得到改进。请edit 添加更多详细信息,例如引用或文档,以便其他人可以确认您的答案是正确的。你可以找到更多关于如何写好答案的信息in the help center。

以上是关于将滚动应用到 f​​lex 容器的特定部分的主要内容,如果未能解决你的问题,请参考以下文章

Easeljs 可滚动容器

附加到屏幕特定部分的按钮

Lex Yacc 实际应用全代码

将溢出的 divv 平滑滚动到其中的特定位置[重复]

打开应用程序时指向表格的特定部分

使用反应滚动浏览部分[重复]