答案 0 :(得分:2)
以下内容以John的解决方案为基础,并扩展边框的高度以匹配内容的高度。
HTML:
<div id="wrapper">
<div id="menu">
<ul>
<li>Item1</li>
<li class="selected">Item2</li>
<li>Item3</li>
</ul>
</div>
<div id="content">
<p>Some</p><p>really</p><p>long</p><p>content</p><p>...</p>
</div>
</div>
CSS:
#wrapper {
display:block;
}
#menu {
display: table-cell;
position:relative;
border-right: 1px solid black;
}
#menu ul {
list-style: none;
}
#menu li {
margin-right: -1px;
border-style: solid;
border-width: 0 1px 1px 0;
}
li.selected {
border-right: 1px solid white;
}
#content {
display: table-cell;
}
示例here。
答案 1 :(得分:0)
你可以这样做......
li.active {
position: relative;
right: -1px;
padding: 1px;
}
只要包含ul
overflow: hidden
。
答案 2 :(得分:0)
我认为重叠可以用li里面的另一个div完成,位置相对,向右移动。但是你必须根据所选项目显示/隐藏它。
答案 3 :(得分:0)
尝试以下其中一项:
li.active {
border-right-color: white;
}
li.active {
border-right: 0;
}
答案 4 :(得分:0)
我达到了这个效果,我为每个列表项添加了一个右边框,但是对于选中的列表项,我将border-color
更改为白色。
但是,如果您希望右边框扩展到列表项之外,则需要在ul
上设置具有设置高度的边框,并为列表项添加1px负边距。
例如这个标记
<ul>
<li><a href="#">Item one</a></li>
<li><a href="#">Item two</a></li>
<li><a href="#">Item three</a></li>
<li class="at"><a href="#">Item four</a></li>
<li><a href="#">Item five</a></li>
<li><a href="#">Item six</a></li>
</ul>
这个CSS
ul {
width: 100px;
height: 200px;
border-right: 1px solid #000;
}
li {
border-bottom: 1px solid #000;
border-right: 1px solid #000;
margin-right: -1px;
}
li.at {
border-right: 1px solid #FFF;
}
将达到此结果 - http://jsfiddle.net/ajcw/3VMyY/