当您使用height: 100%;
并展开树时,虚拟滚动的视口高度不会更新到树的新高度。它保持它的px
价值。我们可以完全省略这个 cssheight
并container
使用display: grid;
app.component.css
.container {
border: 1px solid black;
display: grid;
grid-template-rows: auto calc(100vh - 38.4px); // StackBlitz adds 8px padding to body and 'First div' has a height of 22.4px (8 + 8 + 22.4 = 38.4px).
}
calc(100vh - 38.4px)
需要替换为您想要的高度。在这里使用%
值似乎与您在 OP 中提到的关于将“第一个 div”固定在顶部位置的内容违反直觉,因为如果div
给出100%
它,它将根据其内容拉伸,并且整体div
将滚动到视野之外。
然后,您需要做的就是使用display: inline;
on 以tree-container
使其适合 main div
。
角树.component.css
.tree-container {
display: inline;
}
注意:我在检查节点时使用22.4
了nodeHeight
,高度正好是22.4px
.
这是StackBlitz上的一个工作示例。这是相同的预览。