我在无序列表中有一个二叉树,看起来像这样:
<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/