Я читал много сообщений на flexbox, но все еще есть проблема, которая меня беспокоит. Я хочу иметь липкий нижний колонтитул с использованием flexbox по this guide.Flexbox много вложенных детей
Но тогда, внутри содержимого моей страницы Я хотел бы иметь столько вложенных div
s Мне нравится, и они имеют ту же высоту родителя.
Проблема заключается в том, что установка height: 100%
для каждого дочернего элемента (как это было бы сделано в сценарии, отличном от flexbox) работает по-разному, если включен flexbox. Это приводит к тому, что дети получают больше высоты (переполняют родителя).
Чтобы сделать это более ясным, вот codepen without flexbox
Вы можете увидеть в сценарии Flexbox футер получает зеленый bakground, даже если я не хочу этого.
HTML:
<div class="sticky-footer-container">
<div class="sticky-footer-content">
<div class="page-container">
<div class="main-menu">
<div class="main-menu-selection">
<div class="main-menu-selection-text">
<div class="some-other-class">
Some text
</div>
</div>
</div>
<div class="main-menu-selection">
<div class="main-menu-selection-text">
<div class="some-other-class">
Some text
</div>
</div>
</div>
</div>
</div>
</div>
<div class="sticky-footer">
Some footer content
</div>
</div>
SCSS:
* {
box-sizing: border-box;
}
html,
body {
height: 100%;
background: silver;
padding: 0;
margin: 0;
}
.sticky-footer-container {
height: 100%;
display: flex;
flex-direction: column;
.sticky-footer-content {
height: 100%;
background: blue;
flex: 1;
div {
height: 100%;
}
.main-menu-selection {
height: 50%;
}
}
}
.some-other-class {
background: green;
}
Для того, чтобы решить эту проблему, любой вложенной ДИВ должен стать flex-container
?
Другими словами, существует ли способ «остановить распространение гибкого диска» в некоторой точке дерева, поэтому все divs получают родительскую высоту без переполнения?
Пример, который вам обеспечить, похоже, не демонстрирует проблему, о которой вы говорите – Danield