使flex儿童内联阻止

Jos*_*ung 2 html css css3 flexbox

我想有呈现弯曲的孩子inline-block,这样border-bottom是下li的宽度,而不是容器的宽度.

显然flex儿童不能设置为内联块?

这个问题有解决方法吗?

.menu {
  display: flex;
  flex-flow: column;
  list-style: none;
  padding: 0;
}
.menu > li {
  display: inline-block;
  margin-bottom: 1rem;
  border-bottom: 3px solid black;
}
Run Code Online (Sandbox Code Playgroud)
<ul class="menu">
  <li>Tab 1</li>
  <li>Tab 2</li>
  <li>Tab 3</li>
</ul>
Run Code Online (Sandbox Code Playgroud)

https://codepen.io/joshuajazleung/pen/EbwZmJ

Mic*_*l_B 16

添加align-items: flex-start到容器中:

.menu {
  display: flex;
  flex-flow: column;
  align-items: flex-start; /* NEW */
  list-style: none;
  padding: 0;
}
.menu > li {
  margin-bottom: 1rem;
  border-bottom: 3px solid black;
}
Run Code Online (Sandbox Code Playgroud)
<ul class="menu">
  <li>Tab 1</li>
  <li>Tab 2</li>
  <li>Tab 3</li>
</ul>
Run Code Online (Sandbox Code Playgroud)

或者......切换display: flexdisplay: inline-flex.

.menu {
  display: inline-flex;
  flex-flow: column;
  list-style: none;
  padding: 0;
}
.menu > li {
  margin-bottom: 1rem;
  border-bottom: 3px solid black;
}
Run Code Online (Sandbox Code Playgroud)
<ul class="menu">
  <li>Tab 1</li>
  <li>Tab 2</li>
  <li>Tab 3</li>
</ul>
Run Code Online (Sandbox Code Playgroud)

这里有更多细节:使flex项目占用内容宽度,而不是父容器的宽度

  • 很好地演示了如何使用 flex!不需要任何额外的标记。 (2认同)