【发布时间】:2017-02-07 20:57:26
【问题描述】:
我想在ul 中使用li 元素来实现故事情节的视觉布局,如下所示:
li-element1
.
.
li-element2
.
.
li-element3
我正在使用::before 伪元素在整个 ul 元素中添加一条线,但它在 li 元素的顶部可见,我不希望发生这种情况。我怎样才能让线隐藏在lis 后面并且只在边距间隙之间可见?我已经没有成功地尝试过 Z-index 属性。这是我当前代码的link to a pen。
.container ul{
position: relative;
}
.container ul::before{
content: "";
position: absolute;
top: 0px;
bottom: 0px;
border: 1px dashed blue;
}
.container ul li{
margin: 15px;
}
<div class="container">
<ul>
<li>First</li>
<li>Second</li>
<li>Third</li>
<li>Fourth</li>
</ul>
</div>
更新
在最初的问题中,我没有注意到 li 元素中的项目符号实际上并不是 li 元素本身的一部分,因此实际上不受设置为它们的任何背景颜色的影响。现在考虑到这一点并实施建议的答案,结合使用 z-index、背景颜色、边距和填充,另外设置 ul list-style-type: none 我已将代码更新为:
.container ul{
padding: 0px;
margin: 0px;
position: relative;
list-style-type: none;
}
.container ul::before{
content: "";
position: absolute;
top: 0px;
bottom: 0px;
left: 16px;
border: 1px dotted red;
}
.container ul li{
margin: 15px;
padding: 0px 0px;
position: relative;
z-index: 1;
background-color: white;
}
<div class="container">
<ul>
<li>• First</li>
<li>• Second</li>
<li>• Third</li>
<li>• Fourth</li>
</ul>
</div>
【问题讨论】:
-
我尝试将位置设置为
li元素上的相对位置,因此我实际上可以在它们上使用 z-index,然后在它们和ul::before类上设置不同的值,但它没有'似乎没有将元素移动到行的顶部,这是我所期望的
标签: html css pseudo-element