Wenn zwei inline-block
div
s unterschiedliche Höhen haben, warum richtet sich das kürzere der beiden nicht an der Oberseite des Containers aus? ( 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>
Wie kann ich das kleine div
oben am Behälter ausrichten ?
Antworten:
Weil das standardmäßig
vertical-align
an der Basislinie festgelegt ist.Verwenden Sie
vertical-align:top
stattdessen:http://jsfiddle.net/Lighty_46/RHM5L/9/
Oder wie @ f00644 sagte, können Sie sich auch
float
auf die untergeordneten Elemente anwenden .quelle
baseline
ist die Standardeinstellung? Ich bin mir sicher, dass es einen guten Grund gibt, aber für einen Nichterwartenden scheint es einfach seltsam. Sie erhalten einen Skyline-Effekt von Manhattan.Sie müssen
vertical-align
Ihren zwei untergeordneten Divs eine Eigenschaft hinzufügen .Wenn
.small
immer kürzer ist, müssen Sie nur die Eigenschaft anwenden auf.small
. Wenn jedoch einer der beiden Werte am höchsten sein könnte, sollten Sie die Eigenschaft auf beide.small
und anwenden.big
.Die vertikale Ausrichtung wirkt sich auf Inline- oder Tabellenzellenfelder aus, und für diese Eigenschaft gibt es eine große Anzahl unterschiedlicher Werte. Weitere Informationen finden Sie unter https://developer.mozilla.org/en-US/docs/Web/CSS/vertical-align .
quelle
quelle
Überlauf hinzufügen: auto zum Container div. http://www.quirksmode.org/css/clearing.html Diese Website zeigt einige Optionen, wenn dieses Problem auftritt.
quelle