Satır içi blok DIV'leri konteyner öğesinin üstüne hizalayın


201

İki inline-block divfarklı yüksekliğe sahip olduğunda , neden bu kadar kısa olanı kabın üst kısmına hizalanmıyor? ( 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>

Küçük divolanı kabının üst kısmına nasıl hizalayabilirim ?


veya şamandıra gibi yüzer: jsfiddle.net/RHM5L/12
AO_


1
dikey hizalama uygula: üst; küçük sınıf için
Deepu Sasidharan

1
şamandıra kullanmak istemiyorum. teşekkürler @ Mr.Alien şimdi çalışıyor :)
Youssef

Yanıtlar:


349

Çünkü, başlangıçta varsayılan olarak vertical-alignayarlanmıştır .

vertical-align:topBunun yerine kullanın :

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

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

Veya @ f00644'ün dediği floatgibi alt öğelere de başvurabilirsiniz .


Şamandırayı uygularsam, konteynerin benim durumumda olduğu gibi çocuklarını yüzdürürsem yükseklikte bir sorun yaşayacağım. Buraya bir göz atın makale
Youssef

1
Herhangi bir fikir baselinevarsayılan neden ? Eminim iyi bir neden vardır, ama beklenmedik bir şekilde garip görünüyor. Sonunda bir Manhattan siluetinin etkisi ile sonuçlanır.
Sridhar Sarnobat

Font hizalama için dikey hizalama kullanılır, çünkü fontların taban çizgisi olduğundan, varsayılanın taban çizgisine çözümlenmesi mantıklıdır. Bunun gibi diğer durumlarda, üzerine yazmanız gerekir.
karışmaya bırakıldı

25

vertical-alignİki alt divinize bir özellik eklemeniz gerekir .

Her .smallzaman daha kısaysa, özelliği yalnızca uygulamasına uygulamanız gerekir .small. Ancak, her ikisi de en uzun olabilirse, özelliği hem .smallve ' ye uygulamanız gerekir .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;   
}

Dikey hizalama satır içi veya tablo hücre kutularını etkiler ve bu özellik için farklı değerlerde büyük bir yumru vardır. Daha fazla bilgi için lütfen https://developer.mozilla.org/tr-TR/docs/Web/CSS/vertical-align adresine bakın.


-1
<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/>");

})

Ben sadece bir yayılma varsayılan görüntüleme özelliklerini satır içi bloğa değiştirmek hile yapacağını düşünüyorum.
holyghostgym

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.