Tôi đang cố gắng vẽ một cây dọc giống như cấu trúc với HTML và CSS. Tôi đã làm điều đó ở một mức độ nào đó.Cây dọc với CSS và 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>
Trong trường hợp của tôi, một nút có thể có tối đa 2 Childs, không nhiều hơn thế. Tôi đã có nó làm việc cho nút con đầu tiên. Trong trường hợp con thứ hai, không nhận được đường thẳng đứng đến 100% (cho đến khi nút cha của nó).
Tôi đã thử thực hiện một số chỉnh sửa nhưng không có công cụ nào trong số chúng hoạt động. Những gì tôi có thể thay đổi để CSS của tôi, do đó, nó sẽ nhận được tất cả các nút kết nối và trông giống như một cây?
Có thể thực hiện với chính CSS không? hoặc là có thể bằng cách thêm một số javascript?
Cảm ơn Julien. Vấn đề ở đây là độ sâu của mỗi nút có thể là bất kỳ số nào. Tôi không thể định nghĩa loại bước ba bước, vì có thể có 99 bước hoặc n-bước. Vậy, có khả năng nào để xác định các chức năng lớp giả này một cách linh động không? – Naga
Từ những gì tôi biết, làm việc năng động với các lớp giả không phải là dễ dàng như vậy. Tôi sẽ đi với jQuery nếu bạn muốn một cái gì đó linh hoạt hơn. Xem chỉnh sửa. –
Tôi đã thử với jquery bạn đã đưa ra. Khi tôi thêm/xóa một nút trong danh sách động. Các đường thẳng không nằm ở độ cao thích hợp, ngay cả sau khi vẽ lại đường kẻ. https: // jsfiddle.net/qvnw6510/10/ (Trong jsfiddle, chức năng này không được gọi khi tôi thêm nút. Bạn có thể kiểm tra mã trong máy của mình.) Tôi đã thử gỡ lỗi, nhưng không thể giải quyết được. Tôi thấy tính toán chiều cao không hoạt động như mong đợi. – Naga