Dare il contenitore:
display:flex;
flex-direction:column;
e per l'elemento:
flex:1;
La demo: https://jsfiddle.net/ugjfwbg4/1/
body {
background-color: red;
height: 100%;
}
.wrap {
height: 100vh;
width: 100%;
padding: 20px;
background-color: yellow;
display:flex;
flex-direction:column;
}
.top {
width: 100%;
height: 50px;
background-color: blue;
}
.mid {
width: 100%;
background-color: green;
flex:1;
display:flex;
flex-direction:column;
}
.left{
flex:1;
width: 50%;
background-color: red;
}
.bottom {
width: 100%;
height: 50px;
background-color: blue;
}
<div class="wrap">
<div class="top"></div>
<div class="mid">
<div class="left">left</div>
</div>
<div class="bottom"></div>
</div>
Grazie Giovanni. su questo violino: [link] (https://jsfiddle.net/ugjfwbg4/2/) il div rosso all'interno del green non si estende al 100% puoi spiegare? –
Regola le regole del css secondo il contenitore e il bambino come prima. https://jsfiddle.net/ugjfwbg4/3/ e controlla https://css-tricks.com/snippets/css/a-guide-to-flexbox/ – John