gpt4 book ai didi

html - 使 flex 容器受窗口高度限制

转载 作者:行者123 更新时间:2023-11-28 01:27:33 24 4
gpt4 key购买 nike

我正在尝试制作一个占据整个窗口并使用其自己的内部滚动机制的网络应用程序。我不希望任何内容出现在浏览器窗口之外。

现在我正在尝试使用包含一个 flex 容器的布局,设置为 flex 列,它有一个固定的标题导航栏,然后是一个将显示动态数据的内容区域,该内容区域将有一个滚动条来查看内容溢出。这样第二个标题将始终在页面上。我正在使用 Angular 来执行此操作,并且由于被路由的组件在标题和内容 div 之前向 DOM 添加了另一个级别,因此 flex 容器不会限制它们的高度。

.page {
display: flex;
flex-flow: column;
height: 100%;
max-height: 100vh;
}

.header {
flex: 1 1 50px;
border: 3px solid red;
}

.container {
display: flex;
flex: 1 1 auto;
flex-flow: column;
padding: 20px;
}

.dynamic-content {
flex: 1 1 auto;
border: 3px solid blue;
overflow-y: scroll;
display: flex;
flex-flow: column;
}

.item {
font-size: 40px;
}
<div class='page'>

<div class="header">
Head
</div>

<div class="container">

<app-component _nghost class="ng-star-inserted">
<div class="header">SubHeader</div>

<div class='dynamic-content'>
<div class="item">item</div>
<div class="item">item</div>
<div class="item">item</div>
<div class="item">item</div>
<div class="item">item</div>
<div class="item">item</div>
<div class="item">item</div>
<div class="item">item</div>
</div>
</app-component>



</div>

我希望 div.container 只占用页面的剩余高度,并且 div.dynamic-content 在添加元素时不调整大小底部边界,而是切断任何溢出并显示滚动条以获取其余内容。这样,当用户向下滚动页面时,子标题 div 和主标题 div 将始终显示在屏幕上。

angular-router-endpointangular-routed-component div 正如它们的类所描述的那样,一个 Angular Router-Outlet 和由 Outlet 插入的自定义 Angular 组件。据我所知,该组件不能直接设置样式。

最佳答案

我不确定我是否理解正确,但我相信我已经理解了,并且您可以在下面看到解决问题的方法。

关键部分

这里的关键是将 height: 100vh 添加到 .page,这样它就不会超过视点的高度。

.page {
display: flex;
flex-flow: column;
height: 100vh;
}

片段

body {
margin: 0;
}

.page {
display: flex;
flex-flow: column;
height: 100vh;
}

.header {
flex: 1 1 50px;
border: 3px solid red;
}

.container {
display: flex;
flex: 1 1 auto;
flex-flow: column;
padding: 20px;
box-sizing: border-box;
}

.dynamic-content {
flex: 1 1 auto;
border: 3px solid blue;
overflow-y: scroll;
display: flex;
flex-flow: column;
}

.item {
font-size: 40px;
}
<div class='page'>

<div class="header">
Head
</div>

<div class="container">

<div class="header">SubHeader</div>

<div class='dynamic-content'>
<div class="item">item</div>
<div class="item">item</div>
<div class="item">item</div>
<div class="item">item</div>
<div class="item">item</div>
<div class="item">item</div>
<div class="item">item</div>
<div class="item">item</div>
</div>

</div>

</div>

关于html - 使 flex 容器受窗口高度限制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51156697/

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