/ / kolumna flex-flow z bocznymi elementami div w korpusie - html, css, css3, flexbox

kolumna flex-flow z bocznymi przegrodami w korpusie - html, css, css3, flexbox

Próba zrobienia kolumnowego flexboksa z nagłówkiem, korpusem i stopką, a następnie wewnątrz ciała ma 2 divy obok siebie, które respektują granice flex-box (tj. Nie przepełniają stopki).

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

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

.header {
flex: 0 1 auto;
border-style: solid;
border-width: 1px;
border-color: blue;
}

.body {
display: flex;
flex-flow: column;
flex: 1 1 auto;
overflow-y: auto;
border-style: solid;
border-width: 1px;
border-color: red;
}

.footer {
flex: 0 1 40px;
border-style: solid;
border-width: 1px;
border-color: green;
}

.inner {
position: absolute;
}
.left {
float: left;
width: 200px;
height: 100%;
}

.right {
margin-left: 225px;
height: 100%;
}

Prosty przypadek testowy w jsfiddle

<div class="app">
<div class="header">
<p><b>header</b>
<br />
<br />(sized to content)</p>
</div>
<div class="body">
<div class="inner">

<div class="left">
<p>test 1</p>
<p>test 1</p>
<p>test 1</p>
<p>test 1</p>
<p>test 1</p>
<p>test 1</p>
<p>test 1</p>
<p>test 1</p>
<p>test 1</p>
<p>test 1</p>
<p>test 1</p>
<p>test 1</p>
<p>test 1</p>
<p>test 1</p>
<p>test 1</p>
<p>test 1</p>
</div>
<div class="right">
<p>test 2</p>
<p>test 2</p>
<p>test 2</p>
<p>test 2</p>
<p>test 2</p>
<p>test 2</p>
<p>test 2</p>
<p>test 2</p>
<p>test 2</p>
<p>test 2</p>
<p>test 2</p>
</div>
</div>

</div>
<div class="footer">
<p><b>footer</b> (fixed height)</p>
</div>
</div>

https://jsfiddle.net/XJ45G19/9e7vjykv/

wprowadź opis obrazu tutaj

Każdy pomysł, gdzie idę źle? Z góry dziękuję!

Odpowiedzi:

1 dla odpowiedzi № 1

Publikowanie na jedno żądanie jako odpowiedź:

Usunąć position: absolute od .inner.


1 dla odpowiedzi nr 2

W środku nie ma przepełnienia .body element, ponieważ zawartość została ustawiona absolutnie, co usuwa ją z normalnego przepływu.

Po usunięciu position: absolute od .inner, zawartość zajmuje miejsce, a pionowy pasek przewijania wyskakuje .body.