49

如何防止 flexbox 元素换行?甚至可能吗?

我正在尝试使用具有以下标记的 flexbox 创建一个两列网格:

<div class="flex-container">
   <div class="no-wrap">this should not wrap</div>
   <div class="can-wrap">Lorem ipsum dolor sit amet, consectetur adipisicing elit. Totam debitis consequuntur incidunt neque vel in blanditiis id optio distinctio culpa rem voluptatibus quas architecto ratione assumenda omnis laboriosam? Earum esse.</div>
</div>

元素的.no-wrap宽度应仅与“需要”一样宽,以使内部的所有文本都不会换行。该.can-wrap元素将占用剩余空间,并在需要时进行换行。

我正在使用这个 CSS(无前缀):

.flex-container{
  display:flex;
}

.no-wrap{
  flex-basis:initial;
}

我认为这flex-basis:initial会阻止元素换行 - https://developer.mozilla.org/en-US/docs/Web/CSS/flex-basis

这是一个代码笔:http: //codepen.io/jshawl/pen/bknAc

我知道我可以固定元素的宽度.no-wrap,但我怎样才能让它足够宽以防止换行呢?

.no-wrap元素的等效浮点数为:

.no-wrap{
  display:block;
  float:left; /* be as wide as need be! */
}
4

1 回答 1

90

您正在寻找的属性是flex-shrink,而不是flex-basis

.no-wrap{
  flex-shrink: 0;
}

但是请注意,IE10 并未被列为支持此属性(因为在他们添加 Flexbox 实现时,规范中不存在此属性)。您可以改用flex属性。

.no-wrap{
  flex: 0 0 auto; 
}
于 2013-08-20T19:19:50.933 回答