我有一个包含4个div的div容器。其中有2个标题和2个内容div。点击标题将切换它们下方内容div的可见性。
我想考虑以下3种情况:
这是HTML的结构
<div class='flex-container'>
<div id='header1' class='header'>
Header 1
</div>
<div id='content1' class='header-content'>
<div class='item'>Lorem</div>
<div class='item'>Lorem</div>
<div class='item'>Lorem</div>
<div class='item'>Lorem</div>
<div class='item'>Lorem</div>
<div class='item'>Lorem</div>
<div class='item'>Lorem</div>
<div class='item'>Lorem</div>
<div class='item'>Lorem</div>
</div>
<div id='header2' class='header'>
Header 2
</div>
<div id='content2' class='header-content'>
<div class='item'>Ipsum</div>
<div class='item'>Ipsum</div>
<div class='item'>Ipsum</div>
<div class='item'>Ipsum</div>
<div class='item'>Ipsum</div>
<div class='item'>Ipsum</div>
<div class='item'>Ipsum</div>
<div class='item'>Ipsum</div>
</div>
</div>
这是我尝试应用的样式。请注意,我使用的是Sass。
.flex-container {
display: flex;
flex-direction: column;
height: 300px;
width: 150px;
overflow-y: auto;
}
.header {
display: flex;
align-items: center;
min-height: 35px;
background-color: #99e9f2;
cursor: pointer;
}
.header-content {
flex-basis: calc(50% - 35px);
flex-grow: 1;
overflow-y: auto;
display: flex;
flex-direction: column;
.item {
padding: 3px 12px;
background-color: #e3fafc;
}
}
这是代码pen的链接。
max-heigth: calc(50% - 35px)(标题高度为35px),这解决了增长的内容div导致出现空白间隔的问题,但这也使得如果另一个内容div关闭,内容div将不会增长超过该高度。flex-grow: 1而不使用flex-basis: calc(50% - 35px)和max-height: calc(50% - 35px)可以使内容div增长超过容器高度的约50%,但如果一个内容div具有更多元素,会导致内容div的高度不均匀,从而导致可用空间不均匀分配。Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号