Como você pode ver no CSS abaixo, quero child2me posicionar antes child1. Isso ocorre porque o site que estou desenvolvendo no momento também deve funcionar em dispositivos móveis, nos quais child2deve estar na parte inferior, pois contém a navegação desejada abaixo do conteúdo dos dispositivos móveis. - Por que não 2 páginas-mestre? Estes são os únicos 2 divsque são reposicionados em todo o HTML, portanto, 2 páginas-mestre dessa pequena alteração sã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 possui altura dinâmica, pois subsites diferentes podem ter mais ou menos itens de navegação.
Eu sei que elementos posicionados absolutos são removidos do fluxo, sendo ignorados por outros elementos.
Eu tentei definir overflow:hidden;a div pai, mas isso não ajudou, nem o clearfix.
Meu último recurso será o JavaScript para reposicionar os dois de divsacordo, mas, por enquanto, tentarei ver se existe uma maneira não-JavaScript de fazer isso.