Cuando dos inline-block
div
s tienen diferentes alturas, ¿por qué el más corto de los dos no se alinea con la parte superior del contenedor? ( DEMO ):
.container {
border: 1px black solid;
width: 320px;
height: 120px;
}
.small {
display: inline-block;
width: 40%;
height: 30%;
border: 1px black solid;
background: aliceblue;
}
.big {
display: inline-block;
border: 1px black solid;
width: 40%;
height: 50%;
background: beige;
}
<div class="container">
<div class="small"></div>
<div class="big"></div>
</div>
¿Cómo puedo alinear el pequeño div
en la parte superior de su contenedor?
Respuestas:
Porque el
vertical-align
se establece en la línea de base por defecto.Use en su
vertical-align:top
lugar:http://jsfiddle.net/Lighty_46/RHM5L/9/
O como dijo @ f00644 , también podría aplicar
float
a los elementos secundarios.fuente
baseline
es el valor predeterminado? Estoy seguro de que hay una buena razón, pero para un inesperado, parece extraño. Terminas con un efecto de horizonte de Manhattan.Necesita agregar una
vertical-align
propiedad a sus dos divisiones secundarias.Si
.small
siempre es más corto, solo necesita aplicar la propiedad a.small
. Sin embargo, si cualquiera podría ser más alto, entonces debe aplicar la propiedad a ambos.small
y.big
.La alineación vertical afecta los cuadros en línea o de celda de tabla, y hay una gran cantidad de valores diferentes para esta propiedad. Consulte https://developer.mozilla.org/en-US/docs/Web/CSS/vertical-align para obtener más detalles.
fuente
fuente
Agregue desbordamiento: auto al contenedor div. http://www.quirksmode.org/css/clearing.html Este sitio web muestra algunas opciones cuando se tiene este problema.
fuente