如何使flex div只占用所需的空间?

rod*_*gas 19 css3 flexbox

如何使flex div仅占用所需的空间?它占用了所有可用空间.

我想排队div,在需要时包装.问题是Flex容器占用的空间比实际需要的多.

这是一个例子http://cssdeck.com/labs/wvhe64ot

#outer {
    border: 5px solid green;
    width: 400px;
}
#container {
    display: flex;
    border: 5px dashed black;
    flex-wrap: wrap;
}
#container div {
    padding: 10px;
    border: 2px solid black;
}
Run Code Online (Sandbox Code Playgroud)
Dashed border should be close to the small divs
<div id="outer">
  <div id="container">
    <div>Lipsum</div>
    <div>Lipsum</div>
    <div>Lorem ipsum dolor sit amet</div>
    <div>Lorem ipsum dolor sit amet</div>
   </div>
<div>
Run Code Online (Sandbox Code Playgroud)

Tor*_*ene 20

您可能正在寻找该display: inline-flex物业.它像对待它一样对待它的孩子display: flex,除了它本身不会自动生长.

  • 仅在没有包装的情况下才有效......我希望包装 * 和 * 父 div 尽可能占用较小的空间。我认为它不能用 CSS 来完成,因为也许这个想法是:如果有换行/中断,那是因为 div 需要超过 100% 的空间,所以即使通过破坏元素连续性重新排列一些孩子来减少宽度在另一行中,从概念上讲,它占用的空间比最初可以容纳的要多。所以宽度被认为是 100%,使得父 div 不可能只占用所需的空间(与最大“行”子项的宽度相同)。 (2认同)

Edu*_*ard 12

对我有帮助的是为列导向的元素设置它:

align-items: flex-start
display: flex
flex-direction: column
Run Code Online (Sandbox Code Playgroud)

或者对于行定向元素:

display: flex    
justify-content: flex-start
Run Code Online (Sandbox Code Playgroud)


Bha*_*esh 8

在 div 上设置 flex-shrink: 0 ,您至少需要占用空间