Ich versuche, eine vertikale baumartige Struktur mit HTML und CSS zu zeichnen. Ich habe es bis zu einem gewissen Grad getan.Vertikaler Baum mit CSS und HTML
<!--
We will create a family tree using just CSS(3)
The markup will be simple nested lists
-->
<div class="tree">
<ul>
<li>
<a href="#">Parent</a>
<ul>
<li><a href="#">Child</a>
<ul>
<li><a href="#">Grand Child</a></li>
</ul>
</li>
<li>
<a href="#">Child</a>
<ul>
<li><a href="#">Grand Child</a></li>
<li><a href="#">Grand Child</a>
<ul>
<li><a href="#">Great Grand Child</a></li>
<li><a href="#">Great Grand Child</a></li>
</ul>
</li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
In meinem Fall kann ein Knoten maximal 2 Kinder haben, nicht mehr als das. Ich habe es für den ersten Kindknoten funktioniert. Im Falle des zweiten Kindes, bekomme ich die vertikale Linie nicht zu 100% (bis zum Elternknoten).
Ich habe versucht, ein paar Verbesserungen, aber keiner von ihnen funktioniert. Was kann ich in mein CSS ändern, damit alle Knoten verbunden werden und wie ein Baum aussieht?
Ist es möglich, mit CSS selbst zu tun? oder ist es möglich, etwas Javascript hinzuzufügen?
Danke Julien. Das Problem hierbei ist, dass die Tiefe jedes Knotens beliebig sein kann. Ich kann keine zweistufigen, dreistufigen Klassen definieren, da es 99 Schritte oder n Schritte geben kann. Gibt es also eine Möglichkeit, diese Pseudoklassen-Funktionalität dynamisch zu definieren? – Naga
Soweit ich weiß, ist das dynamische Arbeiten mit Pseudoklassen nicht so einfach. Ich würde mit jQuery gehen, wenn Sie etwas flexibler möchten. Siehe Bearbeiten. –
Ich habe versucht, mit der jQuery, die Sie gegeben haben. Wenn ich einen Knoten in der Liste dynamisch hinzufüge/entferne. Die Linien kommen nicht in der richtigen Höhe, selbst nach dem Neuzeichnen der Linien. https: // jsfiddle.net/qvnw6510/10/ (In jfiddle, die Funktion wird nicht aufgerufen, wenn ich Knoten hinzufügen. Sie können den Code in Ihrem Computer überprüfen.) Ich habe versucht, es zu debuggen, konnte aber nicht lösen. Ich finde die Berechnung der Höhe funktioniert nicht wie erwartet. – Naga