html - 之间有线的水平列表项

标签 html css flexbox

我试图在 <li> 之间放置一条灰色水平细线水平导航栏上的元素以提供元素之间的连接感知。代码如下所示。如何在这些元素之间添加一条简单的线?

ul {
    display: flex;
    align-items: stretch; /* Default */
    justify-content: space-between;
    width: 100%;
    margin: 0;
    padding: 0;
}
li {
    display: block;
    flex: 0 1 auto; /* Default */
    list-style-type: none;
}
<ul>
  <li>1</li>
  <li>2</li>
  <li>3</li>
  <li>4</li>
</ul>

最佳答案

这是在每个 li 之间运行的行的示例。

enter image description here

  • position: relative 添加到 ul 使其成为 :after 元素的父元素
  • 位置 :after 使用垂直平移在字符的垂直中间
  • li 提供 z-indexbackground-color 以便它们保持在灰线的“顶部”

ul {
    display: flex;
    align-items: stretch; /* Default */
    justify-content: space-between;
    width: 100%;
    margin: 0;
    padding: 0;
    position: relative;
}

li {
    display: block;
    flex: 0 1 auto; /* Default */
    list-style-type: none;
    background-color: white;
    padding: 0 0.75em;
    z-index: 1;
}

li:first-child {
    padding-left: 0;
}

li:last-child {
    padding-right: 0;
}

ul:after {
    content: '';
    border-bottom: 1px solid lightgray;
    position: absolute;
    transform: translateY(-50%);
    top: 50%;
    width: 100%;
}
<ul>
  <li>1</li>
  <li>2</li>
  <li>3</li>
  <li>4</li>
</ul>

关于html - 之间有线的水平列表项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54657249/

相关文章:

javascript - IE8中多级弹出菜单的问题

html - Bootstrap 中的滚动卡片

css - Asp.net mvc 设置动态对接与css

html - Flexbox 子项缩小到超出设置的最小宽度

html - Flexbox 不会展开

html - 极简图像 slider 包含使用背景图像转换的最低限度的 HTML 和 CSS

html - 边框未正确呈现,布局周围需要干净的边框

javascript - "dependent drop down list"不起作用 [Google App Engine 上的 Flask]

javascript - 使用 jScrollPane 时固定列与表列重叠

css - 如何通过css将定义的值更改为未指定的值?