我可以在flexbox的行之间划一条线吗?

Rum*_* P. 5 html css flexbox

我有一个水平导航,该导航有些长,需要重新排列以适合狭窄的显示。我使用flexbox使它重排为多行。

但是对于很多行,导航项之间的划分不是很明显。我尝试给它们在顶部添加一个边框,这有点奏效-但是,当然,该边框仅在各个导航选项上可见,而在所有flexbox行之间都没有创建漂亮的分界线。

请查看摘要的整个页面,在帖子中查看时出现显示问题。或使用这个小提琴。您可能需要使浏览器窗口变窄才能看到多行导航。

header {
    height: 3em;
    background-color: #fff;
}


#main {
    height: 9em;
    background-color: #5987d1;
}

footer {
    height: 3em;
    background-color: #a8a8a8;
    border-top: 1px solid #0047b9;
}

ul.horizontal-nav {
    background: rgba(72, 72, 72, 1);
    display: -moz-box;
    display: -ms-flexbox;
    display: -webkit-flex;
    display: flex;
    -ms-flex-direction: row;
    flex-direction: row;
    align-items: center;
    -ms-flex-wrap: wrap;
    flex-wrap: wrap;
    -webkit-box-shadow: 0px 2px 1px 0px rgba(0,0,0,0.75);
    -moz-box-shadow: 0px 2px 1px 0px rgba(0,0,0,0.75);
    box-shadow: 0px 2px 1px 0px rgba(0,0,0,0.75);
    list-style: none;
}

li.NavigationLi2, li.selected-branch-root {
    padding: 0.75em 1em;
    display: block;
    border-top: 1px solid #2662c3;
}

li.selected-branch-root {
    background: #2662c3;
}

li.NavigationLi2 > a, li.NavigationLi2 > a:visited {
    color: #e6eeff;
    text-decoration: none;
    -ms-word-wrap: nowrap;
    word-wrap: nowrap;
}

li.selected-branch-root > a, li.selected-branch-root > a {
    color: #fff;
    text-decoration: none;
    -ms-word-wrap: nowrap;
    word-wrap: nowrap;
}
Run Code Online (Sandbox Code Playgroud)
<header>
</header>
<nav class="horizontal-nav">
    <ul class="horizontal-nav">
                <li class="selected-branch-root"><a href="/Search">Search</a>
                </li>
                <li class="NavigationLi2"><a href="/My%20models">My models</a>
                </li>
                <li class="NavigationLi2"><a href="/Account">Account</a>
                </li>
                <li class="NavigationLi2"><a href="/Management%20Tools">Management</a>
                </li>
                <li class="NavigationLi2"><a href="/Administration">Administration</a>
                </li>
                <li class="NavigationLi2"><a href="/Help">Help</a>
                </li>
        </ul>
</nav> 
<section id="main">
</section>
<footer>
</footer>
Run Code Online (Sandbox Code Playgroud)

小智 1

这是我所做的,假设我有一个里面有 3 个 div 的 Flexbox 容器

<div class="flex">
  <div>
    <h2>Free Shipping</h2>
  </div>
  <div>
    <h2>Everything In Stock</h2>
  </div>
  <div>
    <h2>Largest Inventory</h2>
  </div>
</div>
Run Code Online (Sandbox Code Playgroud)

我正在玩的是为了在 3 个 div 的 / flex 项目的中间画一条线,只需在 div 之间添加另一个 flex 项目,如下所示:

<div class="flex">
  <div>
    <h2>Free Shipping</h2>
  </div>

  <img src="lib/xxx/img/ydivider.png" alt="divider"/>

  <div>
    <h2>Everything In Stock</h2>
  </div>

  <img src="lib/xxx/img/ydivider.png" alt="divider"/>  

  <div>
    <h2>Largest Inventory</h2>
  </div>
</div>
Run Code Online (Sandbox Code Playgroud)

您现在可以看到我们有 5 个弹性项目,而不是 3 个。我发现的另外 2 个弹性项目的间距正确,位于中间。请记住,如果您转到显示为列的断点,则该点将需要水平图像。