是否可以将|
作为分隔符添加到CSS菜单中的每个列表元素?
我尝试了content: "|"
,但它没有用。
菜单如下所示:
<ul>
<li><a href="...">link</a></li>
<li><a href="...">link</a></li>
<li><a href="...">link</a></li>
<li><a href="...">link</a></li>
<li><a href="...">link</a></li>
</ul>
结果是:
link link link link
我希望:
link | link | link | link
我知道如何在JavaScript中实现它,但CSS会更好:)菜单是自动生成的,我不想搞砸它。
答案 0 :(得分:13)
您需要为content
使用伪元素,例如::before
或::after
:
li + li::before {
content: "| ";
}
正如其他人所提到的那样,如果您正在寻找一条线路,请根据需要将border-(left|right)
与padding
或margin
一起使用。
答案 1 :(得分:5)
我会用边框做到这一点:
ul li a { border-left:1px solid #000; display:block; }
如果您不想在第一行上添加一行,请添加:
ul li a:first-child { border:none; }
答案 2 :(得分:4)
如果您发布了迄今为止尝试过的内容,那会很有帮助,但这应该有效:
li:not(:last-child):after {
content:"|";
}
答案 3 :(得分:1)
使用border:
li{border-left : 1px solid black;}
li:first-child{border : none;}
答案 4 :(得分:1)
查看this fiddle。
li
{
float:left;
list-style:none;
}
li:after
{
content:"|";
margin:0px 3px;
}
修改强>
直到我发布我的最后还有一个额外的管道并且其他人也在我之前写了正确的方式而没有摆脱我写的here is it updated之后才注意到。
li
{
float:left;
list-style:none;
}
li+li:before
{
content:"|";
margin:0px 3px;
}
答案 5 :(得分:0)
像这样的东西
ul li a {
display: block;
padding: 0 15px;
border-left: 1px solid #000;
}
ul li:first-child a {
border-left: none;
}