html - 根据容器高度调整元素大小纯 CSS

标签 html css sass flexbox

我试图让我的页面的第一部分成为用户窗口的 100%,同时根据屏幕的高度调整 3 个垂直元素的大小。

为了实现这一点,我使用了 flexbox,特别是这些样式:

CSS

.vertical-content {
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    height: 100%;
}

.theitems {
    flex-grow: 1;
}

这确实有效,但出于某些奇怪的原因,它只会在 Firefox 中正确调整元素的大小。 Safari 会拉伸(stretch)图像,而 Chrome 根本不会调整大小。我认为我给出的 flex 规范 (flex-grow: 1) 会调整元素的大小,以便它们都垂直放置在容器中。

Firefox(正确)

enter image description here

Chrome(不正确)

enter image description here

Safari(不正确)

enter image description here

JSFiddle

有人知道这里发生了什么吗?

最佳答案

看起来您正在混合使用不能很好地协同工作的两个规则。

你已经给了容器 justify-content: space-between

但是你也给了每个 flex 元素 flex-grow: 1

如果每个元素都设置为占用所有可用空间,justify-content: space-between 什么都不做(没有空间可以分配)。

二选一。

关于html - 根据容器高度调整元素大小纯 CSS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39498537/

相关文章:

html - 可变高度的粘性页脚解决方案

javascript - 确定 Chrome 中当前 DOM 元素状态

html - 我可以从哪里访问我的 netlify.toml 文件?

java - 试图弄清楚如何将它与 Node.js、Java 和 HTML5 结合在一起

html - 仅在高分辨率下显示 div

html - 调整大小时背景图像重复错误

css - Sass:如何将 JSON 文件直接解码为 Sass 变量?

css - 响应式输入文字大小

css - 表格和表格单元格属性的 Safari 问题(响应式设计)

html - 网格的 Sass 函数