如何使用flex设置基于内容长度的宽度

时间:2017-08-14 19:38:45

标签: html css css3 flexbox

我正在尝试根据内容制作每个项目的宽度,但到目前为止我已经将宽度设置为可用空间。 flex:0 0 auto似乎没有做到这一点。我做错了什么?

目标的宽度取决于内容大小。

[Hello]
[Hello world]

目前

[Hello                   ]
[Hello world             ]

https://jsfiddle.net/v6cgLjbd/8/

<span class='box'>
  <span class='item'>Hello</span>
  <span class='item'>Hello World</span>
  <span class='item'>Hello lOOOOONG text</span>
</span>

.box {
  height: 200px;
  width: auto;
  border: 1px solid red;
  display: flex;
  flex-direction: column;
}

.item {
  background-color: gray;
  flex: 0 0 auto;
  width: auto;
}

1 个答案:

答案 0 :(得分:3)

您需要在flex-container上添加align-items: flex-start。在父元素上使用flex-direction: column时,在子元素上使用flex属性可以控制高度而不是宽度。

&#13;
&#13;
.box {
  height: 200px;
  border: 1px solid red;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
}

.item {
  background-color: gray;
}
&#13;
<span class='box'>
  <span class='item'>Hello</span>
  <span class='item'>Hello World</span>
  <span class='item'>Hello lOOOOONG text</span>
</span>
&#13;
&#13;
&#13;