CSS3 垂直树状图——运用 :before 和 :after (流程图)

直接上图(原网址),还有步骤想详解视频。自己CSS3练习demo。在这里插入图片描述
html

<div class="tree">
        <ul>
            <li>
                <a href="#">parent</a>
                <ul>
                    <li>
                        <a href="#">child</a>
                        <ul>
                            <li>
                                <a href="#">Grant child</a>
                            </li>
                        </ul>
                    </li>
                    <li>
                        <a href="#">child</a>
                        <ul>
                            <li><a href="#">Grant child</a></li>
                            <li>
                                <a href="#">Grant child</a>
                                <ul>
                                    <li><a href="#">Great Grant child</a></li>
                                    <li><a href="#">Great Grant child</a></li>
                                    <li><a href="#">Great Grant child</a></li>
                                </ul>
                            </li>
                            <li><a href="#">Grant child</a></li>
                        </ul>
                    </li>
                </ul>
            </li>
        </ul>    
    </div>

css3

   * {
        margin: 0;
        padding: 0;
    }

    .tree ul {
        padding-top: 20px;
        position: relative;
        webkit-transition: all 0.5s;
        -moz-transition: all 0.5s;
        transition: all .3s;
    }

    .tree li {
        float: left;
        list-style: none;
        text-align: center;
        position: relative;
        padding: 20px 5px 0 5px;
        webkit-transition: all 0.5s;
        -moz-transition: all 0.5s;
        transition: all .3s;
    }

    /*利用::before,::after作分支线*/
    .tree li::before,
    .tree li::after {
        content: "";
        position: absolute;
        top: 0;
        right: 50%;
        width: 50%;
        height: 20px;
        border-top: 1px solid #ccc;
    }

    .tree li:after {
        right: auto;
        left: 50%;
        border-left: 1px solid #ccc;
    }

    .tree li:first-child::before,
    .tree li:last-child::after {
        border: 0 none;
    }

    .tree li:last-child::before {
        border-right: 1px solid #ccc;
        -webkit-border-radius: 0 10px 0 0;
        -moz-border-radius: 0 10px 0 0;
        border-radius: 0 10px 0 0;
    }

    .tree li:first-child::after {
        -webkit-border-radius: 10px 0 0 0;
        -moz-border-radius: 10px 0 0 0;
        border-radius: 10px 0 0 0;
    }

    /*删除仅只有一个分支的分支线*/
    .tree li:only-child::before,
    .tree li:only-child::after {
        border: none;
    }

    .tree li:only-child {
        padding-top: 0;
    }

    /*添加仅只有一个分支的下分支线*/
    .tree ul ul::before {
        content: "";
        position: absolute;
        top: 0;
        left: 50%;
        border-left: 1px solid #ccc;
        width: 0;
        height: 20px;
    }

    .tree a {
        display: inline-block;
        border: 1px solid #ccc;
        padding: 5px 10px;
        color: #666;
        text-decoration: none;
        padding: 10px;
        -webkit-border-radius: 5px;
        -moz-border-radius: 5px;
        border-radius: 5px;
        webkit-transition: all 0.5s;
        -moz-transition: all 0.5s;
        transition: all .3s;
    }

    /*添加选中状态*/
    .tree li a:hover,
    .tree li a:hover+ul li a {
        background-color: #c8e4f8;
        color: #000;
        border: 1px solid #94a0b4;
    }

    .tree li a:hover+ul li:after,
    .tree li a:hover+ul li:before,
    .tree li a:hover+ul::before,
    .tree li a:hover+ul ul::before {
        border-color: #94a0b4;
    }
  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值