【问题标题】:Flexbox issue with wrapping and flex-grow: auto包装和 flex-grow 的 Flexbox 问题:自动
【发布时间】:2018-02-03 17:13:15
【问题描述】:

我正在为自己遇到的一个难题而苦苦挣扎。我想要有标签,可以是多行的,以最佳地填充整个宽度。对于哪个 flex: auto 效果很好。但是,对于一些不相关且不可更改的情况,我还拥有带有 flex-wrap: wrap 的容器和一个覆盖选项卡上方整个宽度的单个项目。

使用 flex: auto 和 flex-wrap: wrap flex 项目不再尝试通过包装其内容文本来适应宽度 - 它们都将其放在一行中,如果不适合则换行。

我做了一个小提琴来说明它: https://jsfiddle.net/d67mgqvm/

<div class="flexbox">
  <div class="flexitem full">
    This is a desired behavior but it has to use a wrapper to prevent wrapping
  </div>
  <div class="wrapper">  
    <div class="flexitem">
      Content can be different so I have to use flex: auto so it has more space for longer texts
    </div> 
    <div class="flexitem">
      Like I said, it can be short like this one
    </div>
  </div>
</div>

<div class="flexbox">
  <div class="flexitem full">
    This doesn't work, even though it can fit in all the content if it wraps text inside items
  </div>  
  <div class="flexitem">
    Content can be different so I have to use flex: auto so it has more space for longer texts
  </div> 
  <div class="flexitem">
    Like I said, it can be short like this one
  </div>
</div>

我一直在考虑是否有可能在没有包装器的情况下做到这一点。看起来像 flex-basis: min-content 应该是这样的,但它只适用于 FF...

【问题讨论】:

  • 我很困惑,你想达到什么目的?一切都在一条线上还是别的什么?您的小提琴中的代码与您粘贴的代码不匹配,这是您拥有的代码?
  • 我创建了一个包含 2 个部分的小提琴。顶部代码的工作方式与我想要的一样,但它有一个额外的包装器。小提琴中的下半部分是我想要尝试改变的部分,以使其表现得像顶部一样,但没有包装标签。
  • 为您的弹性商品删除flex: auto,这不是解决问题吗?
  • 不,没有 flex: auto 它们都占用相同的空间,我特别写了,因为文本不同,我需要它在所有 flex 项目中最佳地分配宽度。

标签: html css flexbox


【解决方案1】:

嗯,它看起来像 flex-basis: min-content 是我正在寻找的,不幸的是它还没有在除 Firefox 之外的任何地方实现。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-06-19
    • 2018-07-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-12-23
    • 1970-01-01
    相关资源
    最近更新 更多