Quando dois inline-block
div
s têm alturas diferentes, por que o menor dos dois não se alinha ao topo do contêiner? ( 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>
Como alinhar o pequeno div
na parte superior do contêiner?
Respostas:
Porque o
vertical-align
é definido na linha de base como padrão.Use em
vertical-align:top
vez disso:http://jsfiddle.net/Lighty_46/RHM5L/9/
Ou como @ f00644 disse que você também pode aplicar
float
aos elementos filhos.fonte
baseline
o padrão é? Tenho certeza de que há uma boa razão, mas para quem não espera, isso parece estranho. Você acaba com um efeito de horizonte de Manhattan.Você precisa adicionar uma
vertical-align
propriedade aos seus dois filhos filhos.Se
.small
for sempre mais curto, você só precisará aplicar a propriedade.small
. No entanto, se qualquer um puder ser o mais alto, aplique a propriedade a ambos.small
e.big
.O alinhamento vertical afeta as caixas de linha ou de célula de tabela e há um grande número de valores diferentes para essa propriedade. Consulte https://developer.mozilla.org/en-US/docs/Web/CSS/vertical-align para obter mais detalhes.
fonte
fonte
Adicionar overflow: auto à div do contêiner. http://www.quirksmode.org/css/clearing.html Este site mostra algumas opções para solucionar esse problema.
fonte