Result
こういうの。まぁ特別なものでもないんですがコードがすっきりしてたのでメモ
CMSの管理画面なんかで複雑化したページを階層表示する、とかWebサイトのサイトマップとかいろいろ用途はありそうです
css
.tree { /*親要素*/ position : relative ; background : white ; margin-top : 20px ; padding : 30px ; font-size : . 85 rem; 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 > |