Faça a div absoluta posicionada expanda a altura div do pai

Como você pode ver no CSS abaixo, quero que child2 se posicione antes de child1. Isso ocorre porque o site que estou desenvolvendo no momento também deve funcionar em dispositivos móveis, nos quais o filho2 deve estar na parte inferior, pois contém a navegação que eu quero abaixo do conteúdo nos dispositivos móveis. - Por que não 2 masterpages? Este é o único 2 divs que são reposicionados em todo o HTML, então 2 masterpages para esta pequena alteração é um exagero.

HTML:

<div id="parent">
    <div class="child1"></div>
    <div class="child2"></div>
</div>

CSS:

parent { position: relative; width: 100%; }
child1 { width: auto; margin-left: 160px; }
child2 { width: 145px; position: absolute; top: 0px; bottom: 0px; }

child2 tem altura dinâmica, pois diferentes subsites podem ter mais ou menos itens de navegação.

Eu sei que os elementos posicionados absolutos são removidos do fluxo, assim ignorados por outros elementos.
Eu tentei definiroverflow:hidden; no pai div, mas isso não ajudou, nem o clearfix.

Meu último recurso será o javascript para reposicionar as duas divs de acordo, mas por enquanto vou tentar ver se existe uma maneira não-javascript de fazer isso.

questionAnswers(14)

yourAnswerToTheQuestion