I know that this was asked 6 months ago, but I have been looking for a solution to this problem for a long time and I hope that other people will be able to use the solution that I used in the archive. You were there when you said that somehow the main drawer should get the minimum height of the space between the header and footer.
Unfortunately, I do not know how this can be done using pure CSS, but it is quite simple with javascript, but this solution is not always viable, and it is rather messy in terms of code separation. The good news is that depending on what you need to do, there is a CSS hack that you can use.
What I did was add an absolutely positioned element under the body, which essentially stretched below the header to the footer. So I could add a background or gradient to this #divBelowBody, which essentially allowed me to pretend that this problem was solved (although this solution leaves a bitter taste in my mouth).
Also, if you want to add a border around your div content and hoped that it would extend to the footer, even when the content was small, you would be wrapped (although I really don't think it's possible to make this workable) so it only works if you were hoping to add a background or gradient, etc.
Here you can see the code: http://jsfiddle.net/qHAxG/ Expand the results section horizontally to see more clearly what is happening.
source share