Как правило, в CSS, когда родитель и его последний дочерний элемент имеют поле, поля сжимаются, создавая единое поле. Э.Г.
article {
margin-bottom: 20px
}
main {
background: pink;
margin-bottom: 20px;
}
footer {
background: skyblue;
}
<div id="container">
<main>
<article>
Item 1
</article>
<article>
Item 2
</article>
</main>
<footer>Footer</footer>
</div>
Как вы можете видеть, даже если поле 20px
указано для article
и main
тегов, вы получите только 20px
поле между последней статьей и нижним колонтитулом .
Однако, используя flexbox , мы получаем 40px
поле между последним статьей и нижним колонтитулом - полное 20p
x поле из от статьи к основному, и еще один 20px
от основного до нижнего колонтитула .
#container {
display: flex;
flex-direction: column;
}
article {
margin-bottom: 20px
}
main {
background: pink;
margin-bottom: 20px;
}
footer {
background: skyblue;
}
<div id="container">
<main>
<article>
Item 1
</article>
<article>
Item 2
</article>
</main>
<footer>Footer</footer>
</div>
Есть ли способ заставить поля flexbox вести себя так же, как не флексбокс?