问问题
29713 次
2 回答
27
我能想到的最好的方法是一些(不幸的是令人遗憾)嵌套和使用生成的内容(所以它确实需要一个非常最新的浏览器,所以IE < 8看起来不会非常漂亮),但是,也就是说,鉴于 HTML:
ul {
padding: 0;
margin: 0;
list-style-type: none;
position: relative;
}
li {
list-style-type: none;
border-left: 2px solid #000;
margin-left: 1em;
}
li div {
padding-left: 1em;
position: relative;
}
li div::before {
content:'';
position: absolute;
top: 0;
left: -2px;
bottom: 50%;
width: 0.75em;
border: 2px solid #000;
border-top: 0 none transparent;
border-right: 0 none transparent;
}
ul > li:last-child {
border-left: 2px solid transparent;
}
<ul>
<li><div>Level 1</div></li>
<li><div>Level 1</div>
<ul>
<li><div>Level 2</div></li>
<li><div>Level 2</div>
<ul>
<li><div>Level 3</div></li>
<li><div>Level 3</div></li>
</ul>
</li>
</ul>
</li>
<li><div>Level 1</div></li>
</ul>
我们得到这个:
于 2013-01-20T11:29:25.920 回答
1
这是大卫解决方案的一个分支,消除了对<div>
每个额外的需求<li>
:
ul {
padding: 0;
margin: 0;
list-style-type: none;
position: relative;
}
li {
border-left: 2px solid #000;
margin-left: 1em;
padding-left: 1em;
position: relative;
}
li li {
margin-left: 0;
}
li::before {
content:'┗';
color: #000;
position: absolute;
top: -5px;
left: -9px;
}
ul > li:last-child {
border-left: 2px solid transparent;
}
<ul>
<li>Level 1</li>
<li>Level 1
<ul>
<li>Level 2</li>
<li>Level 2
<ul>
<li>Level 3</li>
<li>Level 3</li>
</ul>
</li>
</ul>
</li>
<li>Level 1</li>
</ul>
于 2017-05-12T05:57:33.093 回答