gpt4 book ai didi

css - 具有许多嵌套级别的分层列表,水平布局 : have parent accommodate to childres width

转载 作者:行者123 更新时间:2023-11-28 11:38:59 24 4
gpt4 key购买 nike

我有一个极其嵌套的、分层的列表(它包含关于物种排序的生物学数据)。请参阅示例,其中我只选择了可能的 10 层嵌套中的三层。

我想水平显示此列表,作为已旋转 90 度的组织结构图。

Example of the hierarchical list

当我为每个子 ul 应用宽度时,我可以获得完全正确的布局。幸运的是,树是由 JavaScript 生成的,应用内联样式很容易。 (因此:)

                    <ul  class="wrapper" style="width: 120px;">

但是,我真的很想摆脱这些内联样式,因为没有它们,树的整个管理会变得容易得多。 (考虑显示/隐藏子级别甚至删除完整组织级别的可能性)

正如您在 fiddle 中看到的那样,删除内联样式宽度不起作用。这很奇怪,因为我已经为标签设置了宽度。 无论嵌套多深,我怎样才能使父 div 适应子元素的宽度

这里关于堆栈溢出,已经问了几个类似的问题。这些建议设置float: leftposition:relative。但是,太糟糕了,它不起作用......

http://jsfiddle.net/ideogram/27kNA/5/ (没有内联样式)

http://jsfiddle.net/ideogram/zFMyZ/2/ (内联样式)

基本上,我的问题归结为:在下面的 css/html 中,如何在保持所需布局的同时去除内联宽度?

<head>  

<style type="text/css">
.label{
width: 120px;
text-align: center;
}

.wrapper{
display: inline-block;
vertical-align: middle;
padding-left: 0;
}

.label, .wrapper{
display: inline-block;
vertical-align: middle;
width: 110px;

}

.taxon{
display: inline-block;
overflow: hiden;
outline: 1px dotted #ddd;
margin: 5px 0;
text-align: left;
}
</style>

<ul class="wrapper" style="width: 360px;">
<li class="taxon ">
<div class="label">Balaenopteridae</div>
<ul class="wrapper" style="width: 240px;">
<li class="taxon ">
<div class="label">Balaenoptera</div>
<ul class="wrapper" style="width: 120px;">
<li class="taxon">
<div class="label">Balaenoptera acutorostrata</div>
</li>
<li class="taxon">
<div class="label">Balaenoptera borealis</div>
</li>
<li class="taxon">
<div class="label">Balaenoptera edeni</div>
</li>
</ul>
</li>
<li class="taxon">
<div class="label">Megaptera</div>
<ul class="wrapper" style="width: 120px;">
<li class="taxon">
<div class="label">Megaptera novaeangliae</div>
</li>
<li class="taxon">
<div class="label">Megaptera whatever</div>
</li>
</ul>
</li>
</ul>
</li>
</ul>

最佳答案

按如下方式更新您的选择器并删除所有已定义的宽度。关键点是 display: table-cell et al 同族。
fiddle 样本: http://jsfiddle.net/pLUns/

.label{
border-radius: $taxon-margin;
text-align: center;
}

.wrapper{
vertical-align: middle;
}

.label, .wrapper{
display: table-cell;
vertical-align: middle;
}

.taxon{
display: table-row;
overflow: hidden;
outline: 1px dotted #ddd;
text-align: left;
border-spacing: 5px;
}

关于css - 具有许多嵌套级别的分层列表,水平布局 : have parent accommodate to childres width,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21877693/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com