微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

html – 在包装项行上添加水平线分隔符

我正在使用css flexBox将未知数量的项放入行中,如果需要,可以将其包装到其他行中.

我的问题是,是否可以在每行之间有一条水平线?

Here就是我所拥有的一个简单例子.如果打开代码板,您将看到项目包装成两行(可能多于两行;或者只有一行 – 这取决于元素的确切数量显示的宽度).我想在行之间有一条水平线.

<div>
    <span>First item</span>
    <span>Second item</span>
    <span>Third item</span>
    <span>Fourth item</span>
    <span>Fifth item</span>
    <span>Sixth item</span>
</div>

使用以下CSS:

div {
  border: 1px solid black;
  width:20%;
  display: flex;
  flex-flow: row wrap;
}

span {
  border: 1px solid blue;
  margin: 5px;
}

解决方法

有一种方法可以使用“flex-grow”属性在每行下面添加一条水平线.但是,如果你想在每个项目之间保持5px – 我不知道如何实现这一目标.如果没有,请按以下步骤操作:

>用同一个类包装div中的每个跨度.
>为您的FlexBox容器提供唯一的类/ ID,以使其CSS不应用于包装器div.同时删除底部边框.
>为你的包装类提供你想要的底部边框,一些填充,并设置flex-grow:1.
>为最后一个flex-item指定一个带有flex-grow:1000或其他任意大数字的id.

这是一个JFiddle的工作.

这是我使用的代码

<style>
div.flexBox {
 border-left: 1px solid black;
 border-top: 1px solid black;
 border-right: 1px solid black;
 width:50%;
 display: flex;
 flex-flow: row wrap;
 align-items: stretch;
}       
span {
 border: 1px solid blue;
 margin: 5px;
}      
.wrap {
 border-bottom: 1px solid black;
 padding: 5px;
 flex-grow: 1;
}
#last {
 flex-grow: 1000;
}
</style>
<div class="flexBox">
  <div class="wrap"><span>First item</span></div>
  <div class="wrap"><span>Second item</span></div>
  <div class="wrap"><span>Third item</span></div>
  <div class="wrap"><span>Fourth item</span></div>
  <div class="wrap"><span>Fifth item</span></div>
  <div class="wrap"><span>Sixth item</span></div>
  <div class="wrap"><span>Seventh item</span></div>
  <div class="wrap"><span>Eigth item</span></div>
  <div class="wrap"><span>Nineth item</span></div>
  <div class="wrap"><span>tenth item</span></div>
  <div id="last" class="wrap"><span>Eleventh item</span></div>
</div>

如果您不介意最后一行是均匀间隔的,那么您可以忽略有关向具有较大flex-grow数的最后一个元素添加ID的部分.

原文地址:https://www.jb51.cc/html/226793.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐