Sayfa İçeriğini Dikey Ortalama
Bir siteyi W3C standartlarında, sabit yükseklik kullanmadan dikey olarak ortalamak XHTML kodlayıcısı için genelde sıkıntı vericidir.
Yatay ortalama için genellikle CSS koduna margin: auto
özelliğini eklemek yeterli olabiliyorken, dikey ortalama için bu kadar basit bir CSS stili bulunmamaktadır.
İnternette rastladığım, kısa bir JavaScriptsahip bu çözüm işinizi kolaylaştıracaktır.
HTML:
JavaScript’in kullanacağı “content” ID’li bir div oluşturuyoruz.
<div id="content"> <p> <strong>Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat. Ut wisi enim ad minim veniam.</strong><br /> <br /> Quis nostrud exerci tation ullamcorper suscipit lobortis nisl ut aliquip ex ea commodo consequat. Duis autem vel eum iriure dolor in hendrerit in vulputate velit esse molestie consequat, vel illum dolore eu feugiat nulla facilisis at vero eros et accumsan et iusto odio dignissim qui blandit praesent luptatum zzril delenit augue duis dolore te feugait nulla facilisi. </p> </div>
CSS :
Sıra geldi oluşturduğumuz content
id’li divi tanımlamaya:
#content { position: relative; /* Safari için gerekli */ margin: auto; /* Yatayda ortalama */ width: 700px; background-color:#efefef; padding:10px; border:1px solid #ccc }
Bu uyguladığımız kodların sonrasında aşağıdaki görüntüyü elde ediyorsunuz.
JavaScript :
Dikey ortalama için de head taginin arasına JavaScript kodumuzu ekliyoruz.
Kodu ekledikten sonra content
divimiz dikeyde ortalanmış oluyor.
iyi paylaşım.. 5/5
bu dikey ortalama konusunda çok sıkıntı çekmiş kişilerden biri olarak internetsiz kaldığım bir gün açık kaynaklı opera ya da safari (tam hatırlamıyorum hangisiydi) tarayıcılarından birinin kodlarına bakıyodum.
ve dikey ortalama konusunda sadece birkaç satır css ile halledilebilen çok önemli bir kod elde ettim:
html {
display: table;
width: 100%;
height: 100%
}
body {
display: table-cell;
vertical-align: middle;
text-align: center
}
yukarıdaki kod elemanını tablo gibi ve elemanını da bir tablo hücresi gibi kullanabilmemizi sağlıyor.
dikey ortalamışken yatay da ortalayalım diye “text-align: center”ı da koda ekledim eğer yatay olarak ortada olmayacaksa bunu kaldırabilirsiniz.
kolay gelsin herkese..
html ve body elemanı
@W3: İlginize ve yorumunuza teşekkür ederim. Yazdığınız kod keşke tüm tarayıcılar için geçerli olabilseydi. Internet Explorer (IE 8 dahil ) table-cell özelliğini desteklemiyor maalesef.
Ayrıca http://www.w3schools.com/css/pr_class_display.asp linkinde “Browser Support” başlığında desteklenmeyen diğer display elemanlarını da görebilirsiniz.
Daha önce bu konuya bakmıştım ama pek ilgimi çekmemişti, şimdi kod lazım olunca tekrar bakayım dedim 🙂 teşekkürler.
Gözde hanım bilgiler için teşekkürler ama ne yazıkki js dosyasından elementID vermemiz gerek bu da bir dezavantaj, ie 8 de tablecell desteği yok peki çözümü ?
@Mesut Aydın evet elementID vermek dikey ortalamanız gereken çok fazla eleman varsa sınırlayıcı olabilir. Ama tek başına bir kapsayıcı alanı ortalamak isterseniz ideal bir çözüm olabilir.
IE6 ve IE7’nin başımızı yeterince ağrıtmasından ve bir de IE8 ile uğraşmamak için artık aşağıdaki emülatörü kullanıyorum.
abicim süper yazı. eline sağlık. sitemde kulllandım.
anatar kelime yazayım:
“css div sayfaya dikey ortalama”
teşekkürler. ben javascript ile denemeden doğrudan 2. yorumdaki gibi denedim ve çalıştı.
Süpersin.