Kiedy dwa inline-block
div
mają różne wysokości, dlaczego krótszy z nich nie wyrównuje się z górną krawędzią pojemnika? ( 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>
Jak mogę wyrównać małe div
na górze pojemnika?
Odpowiedzi:
Ponieważ
vertical-align
jest ustawiony domyślnie na poziomie podstawowym .vertical-align:top
Zamiast tego użyj :http://jsfiddle.net/Lighty_46/RHM5L/9/
Lub jak @ f00644 powiedział, że możesz również zastosować
float
do elementów potomnych.źródło
baseline
jest domyślny? Jestem pewien, że jest dobry powód, ale dla nieoczekiwanego wydaje się to dziwne. W efekcie powstaje efekt panoramiczny Manhattanu.Musisz dodać
vertical-align
właściwość do div dwóch dzieci.Jeśli
.small
zawsze jest krótszy, wystarczy zastosować właściwość do.small
. Jeśli jednak którykolwiek z nich może być najwyższy, powinieneś zastosować tę właściwość zarówno do, jak.small
i do.big
.Wyrównanie w pionie wpływa na pola śródliniowe lub komórki tabeli, a dla tej właściwości istnieje duża liczba różnych wartości. Więcej informacji na stronie https://developer.mozilla.org/en-US/docs/Web/CSS/vertical-align .
źródło
źródło
Dodaj przepełnienie: auto do div kontenera. http://www.quirksmode.org/css/clearing.html Ta witryna zawiera kilka opcji związanych z tym problemem.
źródło