0
創建分層列表我想要看起來像這樣的列表:純CSS
我不知道是否有這種類型的設計的名字,但「分級列表「在谷歌上返回的結果看起來像我想要的,所以我在這裏稱之爲。例如,它基本上是用文件系統瀏覽器看到的相同的UI模式(但這不是我的用例)。
我相信我可以用SVG實現這一點,但我想知道是否有純CSS的方式?
我曾嘗試過的一件事是使用嵌套的<ul>
s與before
僞元素包含一個unicode框圖像字符如┖
。我到目前爲止是這樣的:
ul {
position: relative;
}
li {
list-style: none;
}
li.child::before {
content: "┖";
transform: scale(1, 1.8);
position: absolute;
left: 1em;
}
<ul>
<li>Root</li>
<ul>
<li class="child">Child Lv. 1</li>
<ul>
<li class="child">Child Lv. 2</li>
</ul>
<li class="child">Child Lv. 1</li>
<ul>
<li class="child">Child Lv. 2</li>
<li class="child">Child Lv. 2</li>
</ul>
</ul>
</ul>
它看起來很糟糕,而且我想不出任何辦法實際上有跨項目連接,因爲我在我的形象的例子做垂直線。希望能夠幫助我最接近我的圖像示例的任何技巧。
SVG可能是可以接受的,但我不想爲這個UI組件添加任何重量級庫,所以這就是爲什麼我要求純CSS。
我可能會嘗試給僞元素一個邊界左和底(而不是「┖」字符)來實現這些行。我認爲,有適當的寬度/高度和位置應該工作得很好。 – CBroe
我同意我可以將它們定位得更好,但我主要關心的是我不認爲我能夠擁有連接兩個「兒童Lv」的垂直線。 1'在我的示例圖像框中,除非我誤解了你 – qwwqwwq
該行將是第二個Lv1子內的僞元素的邊界左側。元素需要多少取決於第一個Lv1在它下面有多少個孩子 - 所以你需要以某種方式來預測這些元素。 (當然,如果你的某個物品分成多行,那麼整個事情就會分崩離析,那麼它可能需要JS來動態計算所需的高度值。) – CBroe