I think you can just make the <body>
a vertical flexbox (display:flex;flex-direction:column
), with flex: none
on the nav and flex: 1 0px
on the .content.
(That way, the nav will get its auto-height, and the content absorbs all of the extra space. No need for 10%/90% divisions.)
Fiddle: http://jsfiddle.net/vr5Yv/
(EDIT: After the min-height:auto
feature was reintroduced, you need to clear that on the div with id="content", too, or it ends up too tall. Updated jsfiddle with that additional change: http://jsfiddle.net/vr5Yv/5/ )