No CSS, o overflow:hidden
é definido em contêineres pai para permitir que ele se expanda com a altura de seus filhos flutuantes.
Mas também tem outro recurso interessante quando combinado com margin: auto
...
Se o irmão ANTERIOR for um elemento flutuante, ele aparecerá justaposto a ele. Ou seja, se o irmão for float:left
, o contêiner com float:none overflow:hidden
aparecerá à direita do irmão, sem nova linha - como se estivesse flutuando no fluxo normal. Se o irmão anterior for float:right
, o contêiner aparecerá à esquerda do irmão. O redimensionamento deste contêiner irá mostrá-lo com precisão centralizado entre os elementos flutuantes. Digamos que se você tiver dois irmãos anteriores, um float:left
ao outro float:right
, o contêiner aparecerá centralizado entre os dois.
Então aqui está o problema ...
Como faço para manter esse tipo de layout SEM mascarar os filhos?
Pesquisar em toda a web me dá maneiras de como clear:both
expandir um contêiner ... mas não consigo encontrar nenhuma solução alternativa para manter a centralização esquerda / direita anterior. Se você criar o contêiner, overflow:visible
ele de repente ignora o fluxo de layout dos elementos flutuantes e aparece em camadas sobre o elemento flutuante.
Então, pergunte :
Tenho que ter o container overflow:hidden
para preservar o layout ...
como posso fazer com que as crianças não fiquem mascaradas? Preciso que o filho seja absolutamente posicionado em relação ao pai fora do contêiner.
OU
Como faço overflow:visible
para que possa posicionar absolutamente um filho em relação ao pai fora do contêiner ... AINDA, preservo o fluxo de layout semelhante ao do float irmão?