Found an interesting feature of Flexbox: in most browsers, you can omit the height of elements in a horizontal flexbox. In the following example, section height set, but the div stretched vertically to its full height in IE11, Edge, Chrome, and FF. Although it does not work in iOS 9 Safari.
https://jsfiddle.net/qy6thr1s/
html, body { height: 100%; margin: 0; } body { display: flex; } section:first-child { flex-grow: 1; background: silver; } div { height: 100%; background: antiquewhite; } <section><div>123</div></section> <section>456</section> However, if you make flex vertical, it stops working - and this is a well-known fact that is repaired with absolute positioning.
https://jsfiddle.net/qy6thr1s/1/
html, body { height: 100%; margin: 0; } body { display: flex; flex-direction: column; } section:first-child { flex-grow: 1; background: silver; } div { height: 100%; background: antiquewhite; } <section><div>123</div></section> <section>456</section> Interestingly, the first option with added flex-wrap continues to work:
https://jsfiddle.net/qy6thr1s/2/
html, body { height: 100%; margin: 0; } body { display: flex; flex-wrap: wrap; } section:first-child { flex-grow: 1; background: silver; } div { height: 100%; background: antiquewhite; } section:last-of-type { width: 100%; background: blue; opacity: .5; } <section><div>123</div></section> <section>456</section> <section>890</section> So in what cases can you not prescribe height and how cross-browser is it?