将内联块DIV与容器元素顶部对齐

时间:2014-02-28 10:39:10

标签: css

当两个inline-block div具有不同的高度时,为什么两个中的较短者不对齐容器的顶部? (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>

如何将小容器顶部的小div对齐?

4 个答案:

答案 0 :(得分:292)

因为vertical-align默认设置为 baseline

改为使用vertical-align:top

.small{
    display: inline-block;
    width: 40%;
    height: 30%;
    border: 1px black solid;
    background: aliceblue;   
    vertical-align:top;
}

http://jsfiddle.net/Lighty_46/RHM5L/9/

或者@f00644表示您也可以将float应用于子元素。

答案 1 :(得分:23)

您需要为您的两个子div添加vertical-align属性。

如果.small总是更短,则只需将该属性应用于.small。 但是,如果其中一个可能是最高的,那么您应该将该属性应用于.small.big

.container{ 
    border: 1px black solid;
    width: 320px;
    height: 120px;    
}

.small{
    display: inline-block;
    width: 40%;
    height: 30%;
    border: 1px black solid;
    background: aliceblue; 
    vertical-align: top;   
}

.big {
    display: inline-block;
    border: 1px black solid;
    width: 40%;
    height: 50%;
    background: beige; 
    vertical-align: top;   
}

垂直对齐会影响内联或表格单元格,并且此属性有一个大的不同值的nubmer。有关详细信息,请参阅https://developer.mozilla.org/en-US/docs/Web/CSS/vertical-align

答案 2 :(得分:0)

<style type="text/css">
        div {
  text-align: center;
         }

         .img1{
            width: 150px;
            height: 150px;
            border-radius: 50%;
         }

         span{
            display: block;
         }
    </style>

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div>
  <input type='password' class='secondInput mt-4 mr-1' placeholder="Password">
  <span class='dif'></span>
  <br>
  <button>ADD</button>
</div>

<script type="text/javascript">

$('button').click(function() {
  $('.dif').html("<img/>");

})

答案 3 :(得分:-2)

添加overflow:auto到容器div。 http://www.quirksmode.org/css/clearing.html此网站在遇到此问题时会显示一些选项。