gpt4 book ai didi

html - 需要帮助拆分侧边栏具有 3 个不同的列表高度

转载 作者:行者123 更新时间:2023-12-04 14:53:39 25 4
gpt4 key购买 nike

我正在创建一个侧边栏,其中包含一个搜索字段和 3 个元素列表。

  • 如果需要,第一个列表应占据 50% 的高度
  • 第二个和第三个列表应将高度拆分为 25%/25%,但是当第二个或第三个列表为空时,另一个列表应占用尽可能多的空间(因此最大为 50% - 空的标题列表)
  • 如果列表大于可用高度,则应添加滚动条。

在三个列表上方是一个小的搜索字段,大小为 7vh。

现在我正在尝试以下方式:

<div style="height: 100vh">
<input (...) style="height: 7vh" />

<div style="height: 93vh">
<div class="list_1_container" style="max-height: 46.5vh">
<LIST />
</div>
<div class="list_2_container" style="max-height: 46.5vh">
<LIST />
<LIST />
</div>
</div>
</div>

到目前为止这还行不通。而且我认为使用魔数(Magic Number)(100vh、7vh...)不利于责任。

有人知道解决这个问题的好方法吗?

最佳答案

我强烈建议对此类内容使用 flex。它非常灵活,在这一点上是最先进的。 Here您可以获得一些关于如何使用它的很好的示例。

关注 flexflex-directiondisplay:flex 样式。 flex 属性几乎可以让您定义元素应该能够收缩或增长的大小和天气。对于底部的 2 个列表,您可以使用 flex: 1 1 auto 以允许根据元素所需的空间进行缩放。

我建议您仅在 length > 0 时将底部列表渲染到 dom 中,以便其他列表可以缩放到其最大高度。

<!DOCTYPE html>
<html lang="">

<head>
<meta charset="utf-8">
<title></title>
</head>

<body style="margin: 0; padding: 0">
<div style="height: 100vh; max-height: 100vh; display: flex; flex-direction: column; background-color: rgba(0,0,255, 0.2); width: 20%; ">
<input style="flex: 7%" />

<div style="flex: 0 0 93%; display: flex; flex-direction: column;">
<div class="list_1_container" style="flex: 0 0 50%; background-color: red;">
list
</div>
<div class="list_2_container" style="flex: 0 0 50%; display: flex; flex-direction: column; overflow-y: hidden;">
<div style="flex: 1 1 auto; background-color: green; overflow-y: scroll;">
<ul style="">
<li>li1</li>
<li>li1</li>
<li>li1</li>
<li>li1</li>
<li>li1</li>
<li>li1</li>
<li>li1</li>
<li>li1</li>
<li>li1</li>
<li>li1</li>
<li>li1</li>
<li>li1</li>
<li>li1</li>
<li>li1</li>
</ul>
</div>
<div style="flex: 1 1 auto; background-color: blue; overflow-y: scroll;">
<ul style="">
<li>li2</li>
<li>li2</li>
<li>li2</li>
</ul>
</div>
</div>
</div>
</div>
</body>

</html>

关于html - 需要帮助拆分侧边栏具有 3 个不同的列表高度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68587379/

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