Result
こういうの。まぁ特別なものでもないんですがコードがすっきりしてたのでメモ
CMSの管理画面なんかで複雑化したページを階層表示する、とかWebサイトのサイトマップとかいろいろ用途はありそうです
css
.tree {/*親要素*/
position: relative;
background: white;
margin-top: 20px;
padding: 30px;
font-size: .85rem;
font-weight: 400;
line-height: 1.5;
color: #212529;
}
.tree ul {/*親フォルダ*/
padding-left: 5px;
list-style: none;
}
.tree ul li {/*ファイル名部分*/
position: relative;
padding-top: 5px;
padding-bottom: 5px;
padding-left: 15px;
box-sizing: border-box;
}
.tree ul li:before {/*横線*/
position: absolute;
top: 15px;
left: 0;
width: 10px;
height: 1px;
margin: auto;
content: '';
background-color: #666;
}
.tree ul li:after {/*縦線*/
position: absolute;
top: 0;
bottom: 0;
left: 0;
width: 1px;
height: 100%;
content: '';
background-color: #666;
}
.tree ul li:last-child:after {/*これ以下は別フォルダになる事を明示する為、少しだけ離す*/
height: 15px;
}
線はよくあるパターンですが疑似要素に幅を付けて背景色を与えて実装されています
html
<div class="tree">
<ul>
<li><i class="fa fa-folder-open"></i> Project
<ul>
<li><i class="fa fa-folder-open"></i> Opened Folder <span>- 15kb</span>
<ul>
<li><i class="fa fa-folder-open"></i> css
<ul>
<li><i class="fa fa-code"></i> CSS Files <span>- 3kb</span>
</li>
・
・
・
</div>
