我在无序列表中有一个二叉树,看起来像这样:

<ul>
<li>1
    <ul>
        <li>2
            <ul>
                <li>4
                    <ul>
                        <li>8</li>
                        <li>--</li>
                    </ul>
                </li>
                <li>5</li>
            </ul>
        </li>
        <li>3
            <ul>
                <li>6</li>
                <li>7</li>
            </ul>
        </li>
    </ul>
</li>




其中-是一个空白区域(用于区分左/右孩子)。

它显示为经典的无序列表。但这很难阅读和浏览。我需要一个像这样的水平树:

http://www.knowledgerush.com/wiki_image/d/df/Binary_tree.png

节点之间可以有或没有线。

我的问题是-可以单独通过html / css完成此操作,还是需要使用javascript?

最佳答案

听起来是个好主意,但我认为很难实现。


线条的角度各不相同,因此无需做一些特殊的逻辑就行了(仅靠HTML / CSS无法实现)
子节点似乎与其他父节点(例如,参见节点5和7)占据相同的垂直空间,而其他节点则没有(参见节点4和5)。这也是一些特殊的订购。


无论如何,您尝试将每个LI设置为向左浮动并具有50%的宽度,因此每个新级别将越来越窄-尚未尝试。

此外,您可能会发现此插件很有趣,尽管它不使用UL而是使用DIV并使用jQuery:http://www.ajaxupdates.com/jquery-binary-tree-plugin/

10-05 18:24