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.