Bu, birçok kez yapmam gereken bir şeydir ve tutarlı bir çözüm hala semantik olmayan bir işaretleme ve bazı tarayıcıya özgü kesmek eklemenizi gerektirir. Css 3 için tarayıcı desteği aldığımızda, günah işlemeden dikey merkezlemenizi alırsınız.
Tekniğin daha iyi bir açıklaması için, onu uyarladığım makaleye bakabilirsiniz , ancak temel olarak, ekstra bir öğe eklemeyi ve IE'de ve position:table\table-cell
tablo olmayan öğeler üzerinde destekleyen tarayıcılarda farklı stiller uygulamayı içerir .
<div class="valign-outer">
<div class="valign-middle">
<div class="valign-inner">
Excuse me. What did you sleep in your clothes again last night. Really. You're gonna be in the car with her. Hey, not too early I sleep in on Saturday. Oh, McFly, your shoe's untied. Don't be so gullible, McFly. You got the place fixed up nice, McFly. I have you're car towed all the way to your house and all you've got for me is light beer. What are you looking at, butthead. Say hi to your mom for me.
</div>
</div>
</div>
<style>
/* Non-structural styling */
.valign-outer { height: 400px; border: 1px solid red; }
.valign-inner { border: 1px solid blue; }
</style>
<!--[if lte IE 7]>
<style>
/* For IE7 and earlier */
.valign-outer { position: relative; overflow: hidden; }
.valign-middle { position: absolute; top: 50%; }
.valign-inner { position: relative; top: -50% }
</style>
<![endif]-->
<!--[if gt IE 7]> -->
<style>
/* For other browsers */
.valign-outer { position: static; display: table; overflow: hidden; }
.valign-middle { position: static; display: table-cell; vertical-align: middle; width: 100%; }
</style>
Belirli tarayıcı gruplarına stil uygulamak için birçok yol (kesmek) vardır. Koşullu yorumlar kullandım, ancak diğer iki tekniği görmek için yukarıda bağlantılı makaleye bakın.
Not: Önceden bazı yükseklikleri biliyorsanız, tek bir metin satırını ortalamaya çalışıyorsanız veya diğer bazı durumlarda dikey merkezleme almanın basit yolları vardır. Daha fazla ayrıntıya sahipseniz, tarayıcı saldırıları veya semantik olmayan işaretleme gerektirmeyen bir yöntem olabileceğinden bunları atın.
Güncelleme: CSS3 için daha iyi tarayıcı desteği almaya başlıyoruz, hem dikey kutuyu hem de dönüşümleri dikey merkezleme (diğer efektlerin yanı sıra) almak için alternatif yöntemler olarak getiriyor. Modern yöntemler hakkında daha fazla bilgi için bu diğer soruya bakın , ancak tarayıcı desteğinin CSS3 için hala kabataslak olduğunu unutmayın.