本网站只能被运行在支持JavaScript脚本的环境中

将多阶层列表元素设计成树状结构

本文介绍一个用于将多阶层列表元素设计成树状结构的CSS样式技巧。由于只使用CSS样式代码,无论增加或减少列表项,列表都将被显示为树状结构。

将多阶层列表元素设计成树状结构

HTML代码

本例中所用HTML代码如下所示,在页面中放置一个多阶层列表元素。

<nav class="nav">
    <ul class=list>
        <li>
            <a href="#">Home</a>
            <ul>
                <li>
                    <a href="#">Lab</a>
                    <ul>
                        <li>
                            <a href="#">Code</a>
                            <ul>
                                <li>
                                    <a href="#">Html</a>
                                </li>
                                <li>
                                    <a href="#">Css</a>
                                </li>
                                <li>
                                    <a href="#">Jquery</a>
                                </li>
                            </ul>
                        </li>
                    </ul>
                </li>
            </ul>
        </li>
    </ul>
</nav>

CSS代码

本示例中的CSS样式代码如下所示。在使用中文时,可以使用font-size样式属性设置字体大小,使用line-height样式属性设置列表项行高。

*,
*:before,
*:after {
    -webkit-box-sizing: border-box;
    -moz-box-sizing: border-box;
    box-sizing: border-box;
}
* {
    margin: 0;
    padding: 0;
    border: 0 none;
    position: relative;
    -webkit-transition: all .4s;
    -moz-transition: all .4s;
    transition: all .4s;
}
html,
body {
    width: 100%;
    height: 100%;
    background: RGBA(0, 58, 97, 1);
    font-family: 'Fjalla One', sans-serif;
    font-size: 18px;
}
h1 {
    color: #ccc;
    text-align: center;
    font-size: 1.5rem;
    padding-top: 40px;
    text-shadow: rgba(0,0,0,0.6) 1px 0, rgba(0,0,0,0.6) 1px 0, rgba(0,0,0,0.6) 0 1px, rgba(0,0,0,0.6) 0 1px;
}
.nav {
    margin: 20px auto;
    left: 60px;
    width: 455px;
    min-height: auto;
}
ul.list,
ul.list ul {
    list-style-type: none;
    margin:0;
    padding:0;
}
ul.list ul {
    margin-left:10px; 
    position:relative;
}
ul.list ul:before {
    content:"";
    display:block;
    width:0;
    position:absolute;
    top:0;
    bottom:0;
    left:0;
    border-left:1px solid #ccc;
}
ul.list li  {
    margin:0;
    padding:3px 12px;
    text-decoration: none;
    text-transform: uppercase;
    font-size:13px;
    line-height:20px;
    color:#ccc;
    font-weight:normal;
    position:relative;
}
ul.list li a { 
    text-decoration: none;
    text-transform: uppercase;
    font-size:14px;
    line-height:20px;
    color:#ccc;
    font-weight:bold;
    position:relative;
}
ul.list li a:hover,
ul.list li a:hover+ul li a {
    color: RGBA(213, 235, 227, 1);
}
ul.list ul li:before {
    content:"";
    display:block;
    width:8px;
    height:0;
    border-top:1px solid #ccc;
    position:absolute;
    top:10px;
    left: 0;
}
ul.list ul li:last-child:before {
    background: RGBA(0, 58, 97, 1); 
    height: auto;
    top: 10px; 
    bottom: 0;
}