Bir resmin yanındaki metni dikey olarak hizalama?

Neden vertical-align: middle çalışmıyor? Yine de vertical-align: top çalışıyor.

span{
  vertical-align: middle;
}
<div>
  <img src="http://lorempixel.com/30/30/" alt="small img" />
  <span>Doesn't work.</span>
</div>
Çözüm

Aslında, bu durumda oldukça basit: görüntüye dikey hizalama uygulayın. Hepsi tek bir satırda olduğu için, hizalanmasını istediğiniz metin değil, gerçekten görüntüdür.


<div>

  <span style="">Works.</span>
</div>

FF3'te test edildi.

Artık bu tür bir düzen için flexbox kullanabilirsiniz.

.box {
   display: flex;
   align-items:center;
}
<div class="box">

    <span style="">Works.</span>
</div>
Yorumlar (23)

Çünkü bunun çalışması için line-height değerini div'in yüksekliğine ayarlamanız gerekir

Yorumlar (2)

Muhtemelen bunu istiyorsundur:

<div>

   <span style="vertical-align:50%; line-height:30px;">Didn't work.</span>
</div>

Diğerlerinin de önerdiği gibi, resim üzerinde dikey hizalama yöntemini deneyin:

<div>

   <span>Didn't work.</span>
</div>

CSS rahatsız edici değildir. Sadece belgeleri okumuyorsunuz ;P

Yorumlar (3)