css - 设置自动边距时阻止 flexbox 折叠子宽度

标签 css flexbox

我正在使用 flexbox 创建一个粘性页脚。

body {
    display: flex;
    flex-direction: column;
    min-height: 100vh;
    margin: 0;
}

header, footer {
    background-color: #c9c9c9;
    padding: 20px;
}

main {
    flex: 1;
    margin: 0 auto;
    max-width: 300px;
    border: 1px solid red;
}
<header></header>
<main>This is some content</main>
<footer></footer>

JsFiddle

这没问题,但是 <main> 的宽度现在折叠以适应内容,而不是扩展到最大宽度。只有在设置了自动边距时才会发生这种情况。

有什么办法可以使<main>设置自动边距时扩展到最大宽度?

最佳答案

添加width: 100%;<main>似乎可以解决这个问题。

Fiddle link.

*, *:before, *:after {
    box-sizing: border-box;  
}

body {
    display: flex;
    flex-direction: column;
    min-height: 100vh;
    margin: 0;
}

header, footer {
    background-color: #c9c9c9;
    padding: 20px;
}

main {
    flex: 1;
    margin: 0 auto;
    max-width: 300px;
    width: 100%;
    border: 1px solid red;
}
<header></header>
<main>This is some content</main>
<footer></footer>

关于css - 设置自动边距时阻止 flexbox 折叠子宽度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25893526/

相关文章:

c# - 始终出现在顶部和完整底部的页眉和页脚

html - 将 flexbox 中的 svg 拉伸(stretch)到保持纵横比的最大高度

javascript - 什么时候html元素多一些好还是少一些好?

css - 可变宽度的图像条

javascript - <div> 间接更改大小时不会触发过渡

javascript - 用于逐渐向下滚动的滚动按钮

html - 使容器在包裹时收缩以适合子元素

css - 将 flexbox 子项设置为具有不同的高度以耗尽可用空间

html - 来自 url 的 CSS 边框图像 - 不起作用

css - 固定位置在 Safari 7 中不起作用