设置自动边距时,停止flexbox折叠子宽度

时间:2014-09-17 14:36:15

标签: 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>扩展到最大宽度?

1 个答案:

答案 0 :(得分:5)

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>