Estoy tratando de alinear una etiqueta div secundaria con la parte inferior o la línea de base de la etiqueta div principal.
Todo lo que quiero hacer es tener el Div hijo en la línea de base del Div padre, así es como se ve ahora:
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
Tendré múltiples childDiv
s con diferentes alturas, y las necesitaré todas para alinearse con la línea de base / parte inferior.
absolute
posicionamiento de acuerdo con el padre.Respuestas:
Necesitas agregar esto:
Al declarar el
absolute
elemento, se posiciona de acuerdo con su padre más cercano que no lo esstatic
(debe serabsolute
,relative
ofixed
).fuente
Siete años después, las búsquedas de alineación vertical todavía plantean esta pregunta, por lo que publicaré otra solución que tenemos disponible ahora: posicionamiento flexbox. Simplemente configure
display:flex; justify-content: flex-end; flex-direction: column
el div padre (demostrado en este violín también):fuente
align-items: flex-start;
si no desea estirar los artículos.Utilice los valores de visualización CSS de la tabla y la celda de la tabla:
HTML
CSS
He creado una demostración de JSBin aquí: http://jsbin.com/INOnAkuF/2/edit
La demostración también tiene un ejemplo de cómo alinear en el centro verticalmente usando la misma técnica.
fuente
esto funciona (solo probé ie & ff):
Espero que ayude.
fuente
La respuesta publicada por Y. Shoham (usando posicionamiento absoluto) parece ser la solución más simple en la mayoría de los casos donde el contenedor tiene una altura fija, pero si el DIV principal tiene que contener varios DIV y ajustar automáticamente su altura en función del contenido dinámico, entonces puede haber un problema. Necesitaba tener dos bloques de contenido dinámico; uno alineado con la parte superior del contenedor y otro con la parte inferior y aunque pude hacer que el contenedor se ajustara al tamaño del DIV superior, si el DIV alineado con la parte inferior fuera más alto, no cambiaría el tamaño del contenedor sino que se extendería hacia afuera . El método descrito anteriormente por romiem que usa el posicionamiento estilo tabla, aunque un poco más complicado, es más robusto a este respecto y permite la alineación al fondo y la altura automática correcta del contenedor.
CSS
HTML
Me doy cuenta de que esta no es una respuesta nueva, pero quería comentar sobre este enfoque, ya que me llevó a encontrar mi solución, pero como novato no se me permitió comentar, solo publicar.
fuente
Probablemente tendría que configurar el div secundario para tener
position: absolute
.Actualice el estilo de su hijo a
fuente
Una publicación antigua, pero pensé en compartir una respuesta para cualquiera que busque. Y porque cuando lo usas las
absolute
cosas pueden salir mal. Lo que yo haría esHTML
El CSS
Y eso simplemente colocaría ese div inferior de nuevo en el div principal. seguro para la mayoría de los navegadores también
fuente
Tuve algo similar y lo hice funcionar agregando efectivamente algo de relleno al niño.
Estoy seguro de que algunas de las otras respuestas aquí llegarían a la solución, pero no pude hacer que funcionen fácilmente después de mucho tiempo; En cambio, terminé con la solución acolchada que es elegante en su simplicidad, pero me parece un poco hackea (sin mencionar que el valor de píxel que establece probablemente dependería de la altura del padre).
fuente
Esta es mi solucion
fuente
Si tiene múltiples Div hijos dentro de su Div padre, entonces puede usar la propiedad de alineación vertical algo como a continuación:
fuente