Eu tenho uma estrutura de página semelhante a esta:
<body>
<div id="parent">
<div id="childRightCol">
/*Content*/
</div>
<div id="childLeftCol">
/*Content*/
</div>
</div>
</body>
Eu gostaria que o pai div
a se expandir em height
quando o interior div
é height
aumenta.
Edit:
Um problema é que, se o width
conteúdo filho se expandir além width
da janela do navegador, meu CSS atual coloca uma barra de rolagem horizontal no pai div
. Gostaria que a barra de rolagem estivesse no nível da página. Atualmente meu div principal está definido comooverflow: auto;
Você pode me ajudar com o CSS para isso?
Respostas:
Tente isso para os pais, funcionou para mim.
ATUALIZAR:
Mais uma solução que funcionou:
Pai :
Criança :
fonte
overflow:auto
significa que o navegador deve decidir qual valor aplicar. O que realmente faz o truque éoverflow: overlay
.overflow:hidden
.overlay
não há suporte fora do Webkit. Outra completamente diferente é dizer que não existe. Por favor, RTFM primeiro . ;)display:inline-block
. O que funcionou muito bem para mim.adicione a
clear:both
. assumindo que suas colunas estão flutuando. Dependendo de como sua altura é especificada, você pode precisar de um estouro: auto;fonte
Como Jens disse no comentário
Isso funciona muito melhor para mim em todos os navegadores.
fonte
Tente dar
max-content
a altura dos pais.https://jsfiddle.net/FreeS/so4L83wu/5/
fonte
Para aqueles que não conseguem descobrir isso nas instruções desta resposta :
Tente definir um valor de preenchimento maior que 0 , se divs filhos tiverem margem superior ou inferior, você poderá substituí-lo pelo preenchimento
Por exemplo, se você tiver
será melhor substituí-lo por:
fonte
Usar algo como auto-limpeza
div
é perfeito para uma situação como essa . Então você apenas usará uma classe no pai ... como:fonte
Adicionar
Para o css da div principal, ou adicione uma div na parte inferior da div principal que apague: both;
Essa é a resposta correta, porque estouro: auto; pode funcionar para layouts simples da Web, mas interfere nos elementos que começam a usar itens como margem negativa etc.
fonte
Isso faz o que você quer?
fonte
Você está procurando um layout CSS de 2 colunas ?
Se assim for, dê uma olhada nas instruções , é bastante simples para começar.
fonte
Eu fiz uma div pai expandir em torno do conteúdo de uma div filho, fazendo com que o filho div fosse uma única coluna que não possui nenhum atributo de posicionamento, como absoluto especificado.
Exemplo:
Com base em maincolumn div sendo o div mais profundo filho de #wrap, isso define a profundidade do #wrap div e o preenchimento de 200px em ambos os lados cria duas grandes colunas em branco para você colocar divs absolutamente posicionados conforme desejar. Você pode até alterar as partes superior e inferior do preenchimento para posicionar as divs do cabeçalho e do rodapé usando a posição: absoluto.
fonte
Você deve aplicar a solução clearfix no contêiner pai. Aqui está um bom artigo explicando o link de correção
fonte
Se seu conteúdo dentro de #childRightCol e #childRightCol estiver flutuando para a esquerda ou para a direita, basta adicionar isso ao css:
fonte
Isso está funcionando como descrito pela especificação - várias respostas aqui são válidas e consistentes com o seguinte:
daqui: https://www.w3.org/TR/css3-box/#blockwidth
fonte
O código abaixo funcionou para mim.
css
html
fonte
fonte
De onde estamos começando
Aqui estão alguns HTML e CSS padrão. No nosso exemplo, temos um elemento pai com dois elementos filhos flutuantes.
Solução 1: overflow: auto
Uma solução que funciona em todos os navegadores modernos e no Internet Explorer de volta ao IE8 é adicionar
overflow: auto
ao elemento pai. Isso também funciona no IE7, com barras de rolagem adicionadas.Solução 2: Container pai flutuante
Outra solução que funciona em todos os navegadores modernos e de volta ao IE7 é flutuar no contêiner pai.
Isso nem sempre é prático, pois a flutuação da sua div principal pode afetar outras partes do layout da página.
Método # 3: Adicionar Div de compensação abaixo de elementos flutuantes
Método nº 4: Adicionar div de limpeza ao elemento pai Esta solução é bastante à prova de balas para navegadores mais antigos e mais novos.
de https://www.lockedownseo.com/parent-div-100-height-child-floated-elements/
fonte
Eu uso esse CSS como pai e funciona:
fonte
você gerencia usando
overflow:hidden;
propriedade em cssfonte