代码之家  ›  专栏  ›  技术社区  ›  Smaug

将无序列表显示为水平二叉树

  •  1
  • Smaug  · 技术社区  · 16 年前

    我在无序列表中有一个二叉树,如下所示:

    <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来完成?

    2 回复  |  直到 12 年前
        1
  •  1
  •   Seb    16 年前

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

    • 线条的角度各不相同,所以不要考虑在没有特殊逻辑的情况下(仅通过HTML/CSS是无法实现的)

    不管怎样,你 尝试 将每个LI设置为向左浮动,宽度为50%,这样每个新级别将越来越窄-还没有尝试过。

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

        2
  •  1
  •   Tim Palak Chaudhary    16 年前

    SVG 带有Javascript代码的图形。Firefox非常好地处理了生成的页面,我也不担心IE根本无法处理它。

    自那时以来,我们在这方面有了更多的发展 HTML5 canvas tag