Lorsque deux inline-block
div
s ont des hauteurs différentes, pourquoi le plus court des deux ne s'aligne-t-il pas sur le haut du conteneur? ( DÉMO ):
.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>
Comment aligner le petit div
en haut de son contenant?
Réponses:
Parce que le
vertical-align
est défini par défaut sur la ligne de base .Utilisez
vertical-align:top
plutôt:http://jsfiddle.net/Lighty_46/RHM5L/9/
Ou comme @ f00644 l'a dit, vous pouvez également appliquer
float
aux éléments enfants.la source
baseline
est la valeur par défaut? Je suis sûr qu'il y a une bonne raison, mais pour un non-espoir, cela semble juste bizarre. Vous vous retrouvez avec un effet d'horizon de Manhattan.Vous devez ajouter une
vertical-align
propriété à vos deux enfants div.Si elle
.small
est toujours plus courte, il vous suffit d'appliquer la propriété à.small
. Cependant, si l'un ou l'autre peut être le plus grand, vous devez appliquer la propriété aux deux.small
et.big
.L'alignement vertical affecte les boîtes en ligne ou les cellules de tableau, et il existe un grand nombre de valeurs différentes pour cette propriété. Veuillez consulter https://developer.mozilla.org/en-US/docs/Web/CSS/vertical-align pour plus de détails.
la source
la source
Ajouter un débordement: auto à la division du conteneur. http://www.quirksmode.org/css/clearing.html Ce site Web présente quelques options lorsque vous rencontrez ce problème.
la source