gpt4 book ai didi

html - Flexbox 溢出滚动条显示在主体上而不是内部元素上

转载 作者:太空狗 更新时间:2023-10-29 13:12:12 27 4
gpt4 key购买 nike

问题:

在使用带溢出的 flexbox 的全尺寸应用程序布局(100% 宽度,100% 高度)中,滚动条不会在 Firefox、IE 或 Edge 中显示 overflow-y。它们确实在 Chrome 中正确显示。在 FF/IE/Edge 中,元素上没有垂直滚动条,而是将滚动条应用于整个页面。

我尝试过的:

我已经尝试添加,如其他几个 SO 答案中所述,将 min-height: 0; 添加到 flex 元素/父元素。我一直无法让这个解决方案起作用,但也许我做错了什么。

截图:

Chrome :

enter image description here

火狐:

enter image description here

示例:

https://codepen.io/gunn4r/pen/WEoPjN

html {
height: 100%;
}

.flex-grow {
flex: 1;
}

.canvas-wrapper {
overflow: scroll;
}

.canvas {
width: 3000px;
height: 3000px;
}
<link href="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/4.0.0-alpha.6/css/bootstrap.min.css" rel="stylesheet" />

<body class="h-100">
<div class="h-100 container-fluid d-flex flex-column">

<div class="row bg-warning">
<div class="col-12 py-4">Top Bar</div>
</div>

<div class="row no-gutter flex-grow">

<div class="col-9 px-0 d-flex flex-column">
<div class="canvas-wrapper">
<div class="canvas bg-success">
Canvas
</div>
</div>
<div class="bg-danger py-3">
Canvas Footer
</div>
</div>

<div class="col-3 bg-primary">
<div class="sidebar-item">Sidebar</div>
</div>

</div>

<div class="row bg-warning">
<div class="col-12 py-2">Overall Footer</div>
</div>

</div>
</body>

最佳答案

看起来问题出在您的代码的这一部分:

.canvas-wrapper {
overflow: scroll;
}

你希望这个元素有滚动条。但是,该元素没有定义高度。

来自 MDN :

In order for overflow to have an effect, the block-level container must have either a set height (height or max-height) or white-space set to nowrap.

Chrome 似乎并不关心高度要求。其他浏览器会。

这应该足以使其跨​​浏览器工作:

.canvas-wrapper {
overflow: scroll;
flex: 1 0 1px;
}

html {
height: 100%;
}

.flex-grow {
flex: 1;
}

.canvas-wrapper {
overflow: scroll;
flex: 1 0 1px; /* NEW */
}

.canvas {
width: 3000px;
height: 3000px;
}
<link href="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/4.0.0-alpha.6/css/bootstrap.min.css" rel="stylesheet"/>
<body class="h-100">
<div class="h-100 container-fluid d-flex flex-column">

<div class="row bg-warning">
<div class="col-12 py-4">Top Bar</div>
</div>

<div class="row no-gutter flex-grow">

<div class="col-9 px-0 d-flex flex-column">
<div class="canvas-wrapper">
<div class="canvas bg-success">
Canvas
</div>
</div>
<div class="bg-danger py-3">
Canvas Footer
</div>
</div>

<div class="col-3 bg-primary">
<div class="sidebar-item">Sidebar</div>
</div>

</div>

<div class="row bg-warning">
<div class="col-12 py-2">Overall Footer</div>
</div>

</div>
</body>

关于html - Flexbox 溢出滚动条显示在主体上而不是内部元素上,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45551624/

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