gpt4 book ai didi

html - 当可用空间发生变化时, flex 元素不会留在父级内部

转载 作者:太空宇宙 更新时间:2023-11-04 10:53:22 26 4
gpt4 key购买 nike

我有一个 flex 容器 (A),其中两个或多个 flex 元素排成一列。顶部的 flex 元素 (B) 是一个 Bootstrap Collapse 面板。底部 flex 元素 (C) 的底部有两个水平放置的 div(D 和 E)。当折叠面板 (B) 展开时,底部 (C) 应该收缩以保留在容器 (A) 中,迫使两个 child (D 和 E)收缩,利用 overflow-y:scroll; 如果他们的内容太大,但它不起作用。相反,C 向下延伸到 A 的底部之外。如果我将 overflow-y:scroll; 应用于 C,它会起作用,但我最终会在 C 的右侧看到一个无用的滚动条。

这是一个图表:

+------------------------+
| A: Flex Container |
| +--------------------+ |
| | B: Collapse Panel | |
| +--------------------+ |
| +--------------------+ |
| | C: Bottom item | |
| | +-------+ +------+ | |
| | | D | | E | | |
| | +-------+ +------+ | |
| +--------------------+ |
+------------------------+

我的代码在 codepen 上 http://codepen.io/pdebarros/pen/jWGKrE这是我的代码:

<html>

<head>
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" href="http://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/css/bootstrap.min.css">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script>
<script src="http://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/js/bootstrap.min.js"></script>
</head>

<body>

<div class="container" style="display: flex; flex-direction: column; height: 260px; border: 10px solid red;">
<div class="panel-group">
<div class="panel panel-default">
<div class="panel-heading">
<h4 class="panel-title">
<a data-toggle="collapse" href="#collapse1">Collapsible panel (section B)</a>
</h4>
</div>
<div id="collapse1" class="panel-collapse collapse">
<div class="panel-body">Panel Body</div>
<div class="panel-footer">Panel Footer</div>
</div>
</div>
</div>
<div style="background-color: yellow; height: 100%; display: flex; flex-direction: row;">
<div style="width:40%; background-color: lightgreen; overflow-y: scroll; ">
Section D
<ul>
<li>1</li>
<li>1</li>
<li>1</li>
<li>1</li>
<li>1</li>
<li>1</li>
<li>1</li>
</ul>
</div>
<div style="width:50%; background-color: pink; overflow-y: scroll;">Section E</div>

</div>
</div>

</body>

</html>

我知道关于相关问题还有很多其他问题,但我找不到解决这个特定问题的问题。正如经常发生的那样,在编写问题的过程中,我发现了答案。我会放在下面。

最佳答案

诀窍是将 overflow-y: hidden; 应用到底部元素 (C)。显然,垂直剪切具有 overflow-y:scroll 的 div 会导致滚动条激活。

<html>

<head>
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" href="http://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/css/bootstrap.min.css">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script>
<script src="http://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/js/bootstrap.min.js"></script>
</head>

<body>

<div class="container" style="display: flex; flex-direction: column; height: 260px; border: 10px solid red;">
<div class="panel-group">
<div class="panel panel-default">
<div class="panel-heading">
<h4 class="panel-title">
<a data-toggle="collapse" href="#collapse1">Collapsible panel (section B)</a>
</h4>
</div>
<div id="collapse1" class="panel-collapse collapse">
<div class="panel-body">Panel Body</div>
<div class="panel-footer">Panel Footer</div>
</div>
</div>
</div>
<div style="background-color: yellow; height: 100%; display: flex; flex-direction: row; overflow-y:hidden;">
<div style="width:40%; background-color: lightgreen; overflow-y: scroll; ">
Section D
<ul>
<li>1</li>
<li>1</li>
<li>1</li>
<li>1</li>
<li>1</li>
<li>1</li>
<li>1</li>
</ul>
</div>
<div style="width:50%; background-color: pink; overflow-y: scroll;">Section E</div>

</div>
</div>

</body>

</html>

关于html - 当可用空间发生变化时, flex 元素不会留在父级内部,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34838075/

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