如何使用flex根据内容长度设置宽度

mas*_*san 5 html css flexbox

我试图根据内容设置每个项目的宽度,但到目前为止我已经将宽度一直设置为可用空间。flex: 0 0 auto 似乎并不能解决问题。我究竟做错了什么?

目标是根据内容大小设置宽度。

[Hello]
[Hello world]
Run Code Online (Sandbox Code Playgroud)

现在

[Hello                   ]
[Hello world             ]
Run Code Online (Sandbox Code Playgroud)

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;
}
Run Code Online (Sandbox Code Playgroud)

Nen*_*car 5

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

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

.item {
  background-color: gray;
}
Run Code Online (Sandbox Code Playgroud)
<span class='box'>
  <span class='item'>Hello</span>
  <span class='item'>Hello World</span>
  <span class='item'>Hello lOOOOONG text</span>
</span>
Run Code Online (Sandbox Code Playgroud)