我有一个flex元素<header>,其中包含两个flex项目:<span><ul>

我的目标是像这张照片一样在一行中水平显示弹性项目:
html - 为什么flexbox容器将列表项分成两行?-LMLPHP

但是我得到的结果是:
html - 为什么flexbox容器将列表项分成两行?-LMLPHP
我已经发现可以通过使用flex-basis: 100%;解决我的问题,但是flexbox容器的行为对我来说是无法理解的。

为什么将<li>项目分成两行而不是一一显示?

的HTML:

<header>
   <span>LOGO</span>
   <ul>
      <li>Library</li>
      <li>Telegram channel</li>
      <li>Contacts</li>
      <li>Donate</li>
   </ul>
</header>


CSS:

span {
   border: 1px solid black;
   margin-right: 10px;
}
ul {
   padding: 10px;
}
li {
   display: inline-block;
   padding: 0 5%;
   border: 1px solid black;
}
header {
   display: flex;
   align-items: center;
}

最佳答案

width:100%使用margin:0ul



span {
   border: 1px solid black;
   margin-right: 10px;
}
ul {
   padding: 10px;
    margin:0;
    width:100%;
}
li {
   display: inline-block;
   padding: 0 5%;
   border: 1px solid black;
}
header {
   display: flex;
   align-items: center;
}

<header>
   <span>LOGO</span>
   <ul>
      <li>Library</li>
      <li>Telegram channel</li>
      <li>Contacts</li>
      <li>Donate</li>
   </ul>
</header>

关于html - 为什么flexbox容器将列表项分成两行?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/53528363/

10-12 01:04