【问题标题】:How to prevent div from growing vertically based on size of child element如何防止div根据子元素的大小垂直增长
【发布时间】:2021-10-29 21:25:29
【问题描述】:

我已经将我的问题处理成一个代码-p - 我实际上正在使用 React,所以它实际上表现得像一个 TabHeadings 列表 - 当单击一个时,它会将 List 扩展到它的右侧(因此一次只能看到一个)。

我的heading-tab 上有一个高度,我不希望它超过它,但是因为list 的高度更大 - 它使它扩展到相同的高度,我该如何防止这种情况发生?

.container {
  display: grid;
  grid-template-columns: 294px auto;
}

.heading-tab {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  height: 72px;
  width: 294px;
  border-top: 1px solid lightgrey;
}

.heading-text {
  padding-top: 22px;
  padding-bottom: 22px;
  padding-left: 32px;
  margin-bottom: 0px;
  font-size: 16px;
}

.list-container {
  margin-left: 96px;
}
<div class="container">
  <div class="heading-tab">
    <p class="heading-text">Heading One</p>
  </div>

  <div class="list-container">
    <div class="list">
      <ul>
        <li>One</li>
        <li>Two</li>
        <li>Three</li>
        <li>One</li>
        <li>Two</li>
        <li>Three</li>
        <li>One</li>
        <li>Two</li>
        <li>Three</li>
        <ul>
    </div>
  </div>
</div>

【问题讨论】:

  • 设置max-height?!
  • hmm 这无济于事 - 这是因为 container 不断增长到其元素的完整高度,所以虽然 heading-tab 只有 72px - 例如,列表可能是 500px。

标签: html css flexbox


【解决方案1】:

这是您想要达到的结果吗?
https://jsfiddle.net/Ljopa0hy/17/

基本上,在容器上设置高度并使用 flexbox 代替网格。

.container {
  display: flex;
  height: 72px;
}

.heading-tab {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  width: 294px;
  background-color: #eee;
}

.list-container {
  background-color: #aaa;
  width: 100%;
  overflow-y: scroll;
}

更新:
看看这个解决方案https://stackoverflow.com/a/38852981/1107544

【讨论】:

  • 嘿-谢谢。但不是我所需要的:-heading-tab 永远不应增长到超过其设置的高度-但 list 和它的内容应该允许根据需要增长,以便所有内容都可以在不滚动的情况下可见?
  • 我明白了,看看这个:stackoverflow.com/a/38852981/1107544我在这里测试了这个解决方案:jsfiddle.net/Ljopa0hy/58
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-11-30
  • 2020-03-08
  • 2021-05-20
  • 1970-01-01
  • 1970-01-01
  • 2019-03-30
相关资源
最近更新 更多