html - 如何使用 flex css 固定高度 div 中的内容

标签 html css flexbox

跟随 this回答,我正在尝试为我的内容创建一个完美的高度,但是内容高度溢出而不是滚动内容。 我为这种情况创建了一个 fiddle 。请帮助我修复我的内容高度,使顶部内容始终可见且可向下滚动。

fiddle

html,
body {
    height: 100%;
    margin: 0
}

.box {
    display: flex;
    flex-flow: column;
    height: 100%;
}

.box .row {
    border: 1px dotted grey;
}

.box .row.header {
    flex: 0 1 auto;
}

.box .row.content {
    display: flex;
    flex-flow: column;
    flex: 1 1 auto;
    overflow-y: auto;
    justify-content: center;
    align-items: center;
}

.data {
    width: 80%;
    min-height: 400px;
}

.box .row.footer {
    flex: 0 1 40px;
}

HTML。

<head>
    <link href="./test.css" rel="stylesheet">
</head>

<body>
    <div class="box">
        <div class="row header">
            <p>
                <b>header</b>
                <br />
                <br />(sized to content)</p>
        </div>
        <div class="row content">
            <div class="data">
                invisible box1
            </div>
            <div class="data">
                visible box2
            </div>
            <div class="data">
                visible box3
            </div>
            <p>
                <b>Bottom Box is visible with scroll.</b> (fills remaining space)
            </p>
        </div>
        <div class="row footer">
            <p>
                <b>footer</b> (fixed height)</p>
        </div>
    </div>
</body>

</html>

最佳答案

您遇到的问题是由 .box .row.content 规则中的 justify-content: center 引起的。

删除它,您的文本将正确溢出。

.box .row.content {
    display: flex;
    flex-flow: column;
    flex: 1 1 auto;
    overflow-y: auto;
    /*justify-content: center;              removed  */
    align-items: center;
}

Updated fiddle


这是 justify-content: center 的默认行为,在 flex 列容器中,当内容溢出时,它会在其顶部和底部溢出。

在此处阅读更多信息,您可以在此处找到资源和解决方法:

关于html - 如何使用 flex css 固定高度 div 中的内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48462423/

相关文章:

html - 基本 margin 重置不起作用

javascript - 下拉列表中的奇怪 anchor

jquery - 使用 Jquery 将 css 应用于除一个元素之外的所有元素

html - 我怎样才能让移动浏览器单独留下一个元素

html - 在 Firefox 和 Chrome 48 中使用 flexbox 呈现问题

javascript - 具有可变宽度的水平居中图像

javascript - HTML/CSS : Set width & height of object in a div?

javascript - 基于 jquery 和 css 的 html 标记中的安全问题

javascript - 检查 DIV 元素显示样式

css - 清除 IE 8 中的 float