Align the inline-block DIV element to the top of the container element
P粉682987577
2023-08-21 20:17:02
<p>When two <code>inline-block</code>'s <code>div</code> have different heights, why doesn't the shorter one align with the top of the container? (<strong>DEMO</strong>): </p>
<p><br /></p>
<pre class="brush:css;toolbar:false;">.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;
}</pre>
<pre class="brush:html;toolbar:false;"><div class="container">
<div class="small"></div>
<div class="big"></div>
</div></pre>
<p><br /></p>
<p>How do I align a small <code>div</code> to the top of its container? </p>
You need to add the
vertical-align
attribute to both child divs.If
.small
is always shorter, just apply this property to.small
. However, this property should be applied to.small
and.big
if either one is likely to be the highest.Vertical alignment affects in-row or table cell boxes, and this property has many different values. See https://developer.mozilla.org/en-US/docs/Web/CSS/vertical-align for more details.
Because by default,
vertical-align
is set to baseline.Use
vertical-align:top
instead:http://jsfiddle.net/Lighty_46/RHM5L/9/
Or as @f00644 said, you can also apply
float
to child elements.