我正在尝试这样做:
a link here
------------------
another link here
------------------
>> active link here
------------------
one more link
------------------
其中所有---
都是边框但长度相等。如果当前页面是链接(即活动链接),则显示>>
(它将是图像)。问题是,如果我向li
添加填充,那么它将导致边框位于>>
下面,这是不希望的。显然没有javascript。
我试图使用的一般标记是:
<ul>
<li><a href="#">a link here</a></li>
<li><a href="#">another link here</a></li>
<li><a href="#">active link here</a></li>
<li><a href="#">one more link</a></li>
</ul>
答案 0 :(得分:5)
我建议将.active
类应用于li
,而不是链接,然后使用:
li {
margin: 0 0 0 5em;
border-bottom: 1px dashed #ccc;
position: relative;
}
.active:before {
position: absolute;
display: block;
left: -3em;
width: 2.5em;
content: '>>';
content: url(http://path/to/image.gif);
}
鉴于使用:before
伪元素跨浏览器的困难,似乎值得指出可以使用list-style-image
代替:
li {
margin: 0 0 0 5em;
border-bottom: 1px dashed #ccc;
position: relative;
}
li.active {
list-style-position: outside;
list-style-type: circle; // the fall-back option
list-style-image: url(http://davidrhysthomas.co.uk/linked/bullet_point.gif);
}
参考文献:
答案 1 :(得分:0)
您可以随时更改a
标签以显示屏幕并执行此类操作以获得您正在寻找的边框效果。由于边框已应用于a
元素,因此如果您将填充应用于li
,则无关紧要。
<html>
<head>
<style type="text/css">
ul {width: 100px;}
ul li a {border-bottom: 1px black dashed; display: block;}
</style>
</head>
<body>
<ul>
<li><a href="#">a link here</a></li>
<li><a href="#">another link here</a></li>
<li><a href="#">active link here</a></li>
<li><a href="#">one more link</a></li>
</ul>
</body>
</html>