【问题标题】:Flex container with overflow-x not taking full width of parent container [duplicate]具有溢出-x 的 Flex 容器未占用父容器的全宽 [重复]
【发布时间】:2018-12-08 20:02:32
【问题描述】:

我在让带有overflow-x 的flex 容器的子级占据其内容的整个宽度时遇到了一些问题。

我们的目标是让内容项使用“flex: 1 0 216px”,当它们无法全部显示在屏幕上时,会出现滚动条,以便用户滚动查看其余内容。但是正如您在下面的 sn-p 中看到的那样,“.row” div 出于某种原因没有占据其父级“.container”的全部宽度,导致背景颜色和边框无法到达内容的边缘.我已将容器的背景设为灰色以强调问题。

这是代码的简化版本。谢谢!

.container {
  height: 100%;
  background-color: lightgray;
  overflow-x: auto;
}
.row {
  background: lightyellow;
  min-height: 48px;
  padding-top: 12px;
  padding-bottom: 12px;
  border-bottom: 1px solid gray;
  display: flex;
  align-items: center;
  flex-basis: 100%;
  width: 100%;
}

.content {
  flex: 1 0 216px;
}
<div class="container">
    <div class="row">
      <div class="content">Content</div>
      <div class="content">Content</div>
      <div class="content">Content</div>
      <div class="content">Content</div>
    </div>
    <div class="row">
      <div class="content">Content</div>
      <div class="content">Content</div>
      <div class="content">Content</div>
      <div class="content">Content</div>
    </div>
    <div class="row">
      <div class="content">Content</div>
      <div class="content">Content</div>
      <div class="content">Content</div>
      <div class="content">Content</div>
    </div>
</div>

【问题讨论】:

    标签: html css flexbox overflow


    【解决方案1】:

    在 flex 和 overflow: auto 之间肯定有一些问题,我只是没有深入探讨。如果它只是实现 .row 元素的全宽,而不是width: 100%;你可以设置min-width: calc(4 * 216px);,(因为你已经在.content上设置了flex-shrink: 0flex-basis: 216px;,我认为.content永远不会小于那个......)

    【讨论】:

    • 感谢您的建议!不幸的是,内容将是动态的,因此无法正常工作。基于这被标记为重复,我阅读了另一张票,似乎答案是这在 CSS 中是不可能的。哦,好吧!
    猜你喜欢
    • 2018-02-12
    • 1970-01-01
    • 1970-01-01
    • 2019-01-14
    • 1970-01-01
    • 1970-01-01
    • 2021-12-08
    • 1970-01-01
    • 2020-06-26
    相关资源
    最近更新 更多