假设有以下 HTML(请在未来展示您的 HTML,图表对于交流标记的用处不如您想象的那么有用,尽管它们非常适合展示所需的最终结果):
<ul>
<li><span class="controls">
<button>b</button>
<button>b</button>
<input type="checkbox" />
</span>Element_1
<ul>
<li><span class="controls">
<button>b</button>
<button>b</button>
<input type="checkbox" />
</span>Element_1.1
<ul>
<li><span class="controls">
<button>b</button>
<button>b</button>
<input type="checkbox" />
</span>Element_1.1.1</li>
<li><span class="controls">
<button>b</button>
<button>b</button>
<input type="checkbox" />
</span>Element_1.1.2</li>
</ul>
</li>
<li><span class="controls">
<button>b</button>
<button>b</button>
<input type="checkbox" />
</span>Element_1.2</li>
</ul>
</li>
<li><span class="controls">
<button>b</button>
<button>b</button>
<input type="checkbox" />
</span>Element_2</li>
<li><span class="controls">
<button>b</button>
<button>b</button>
<input type="checkbox" />
</span>Element_3</li>
然后下面的 CSS 似乎如你所愿:
ul {
position: relative;
margin-left: 6em;
}
ul ul {
position: static;
margin-left: 0;
}
li {
padding: 0.5em 0;
line-height: 1.5em;
}
span.controls {
position: absolute;
width: 6em;
right: 100%;
}
span.controls * {
display: inline;
}
JS 小提琴演示。