Estou tentando alinhar uma tag div filha à parte inferior ou linha de base da tag div pai.
Tudo que eu quero fazer é ter o Div filho na linha de base do Div pai, eis a aparência dele agora:
HTML
<div id="parentDiv">
<div class="childDiv"></div>
</div>
CSS
#parentDiv
{
width:300px;
height:300px;
background-color:#ccc;
background-repeat:repeat
}
#parentDiv .childDiv
{
height:100px;
width:30px;
background-color:#999;
}
Nota
Terei vários childDiv
s com alturas variadas e precisarei de todos eles para alinhar à linha de base / fundo.
absolute
posicionamento de acordo com o pai.Respostas:
Você precisa adicionar isto:
Ao declarar um
absolute
elemento, ele é posicionado de acordo com seu pai mais próximo que não éstatic
(deve serabsolute
,relative
oufixed
).fonte
Sete anos depois, as buscas por alinhamento vertical ainda trazem essa questão, então postarei outra solução que temos à nossa disposição agora: o posicionamento do flexbox. Basta definir
display:flex; justify-content: flex-end; flex-direction: column
no div pai (demonstrado neste violino também):fonte
align-items: flex-start;
se você não quiser esticar os itens.Use os valores de exibição CSS da tabela e da célula da tabela:
HTML
CSS
Criei uma demonstração JSBin aqui: http://jsbin.com/INOnAkuF/2/edit
A demonstração também tem um exemplo de como centralizar verticalmente o alinhamento usando a mesma técnica.
fonte
isso funciona (eu só testei ie & ff):
espero que ajude.
fonte
A resposta postada por Y. Shoham (usando posicionamento absoluto) parece ser a solução mais simples na maioria dos casos onde o contêiner tem uma altura fixa, mas se o DIV pai tiver que conter vários DIVs e ajustar automaticamente sua altura com base no conteúdo dinâmico, então pode haver um problema. Eu precisava ter dois blocos de conteúdo dinâmico; um alinhado ao topo do contêiner e um ao fundo e embora eu pudesse fazer o contêiner se ajustar ao tamanho do DIV superior, se o DIV alinhado ao fundo fosse mais alto, ele não redimensionaria o contêiner, mas se estenderia para fora . O método descrito acima por romiem usando o posicionamento de estilo de mesa, embora um pouco mais complicado, é mais robusto a esse respeito e permitiu o alinhamento com o fundo e a altura automática correta do contêiner.
CSS
HTML
Sei que não é uma resposta nova, mas queria comentar sobre essa abordagem, pois me levou a encontrar minha solução, mas como um novato não tive permissão para comentar, apenas postar.
fonte
Você provavelmente teria que definir o div filho para ter
position: absolute
.Atualize o estilo do seu filho para
fonte
Um post antigo, mas pensei em compartilhar uma resposta para quem procura. E porque quando você usa as
absolute
coisas podem dar errado. O que eu faria éHTML
O css
E isso simplesmente colocaria aquele div inferior de volta no div pai. seguro para a maioria dos navegadores também
fonte
Eu tinha algo semelhante e fiz funcionar adicionando um pouco de enchimento na criança.
Tenho certeza de que algumas das outras respostas aqui levariam à solução, mas não consegui fazê-las funcionar facilmente depois de muito tempo; Em vez disso, acabei com a solução de padding-top que é elegante em sua simplicidade, mas me parece meio hackeada (sem mencionar que o valor de pixel que ela define provavelmente depende da altura do pai).
fonte
Esta é a minha solução
fonte
Se você tiver vários Divs filhos dentro de seu Div pai, poderá usar a propriedade de alinhamento vertical da seguinte maneira:
fonte