CSS ile ortalama

UYARI!
Bu yazı güncelliğini yitirmiştir. Okumaya devam etmeyi planlıyorsanız lütfen yazıdaki bilgilerin artık geçerli olmayabileceğini göz önünde bulundurun.

Bu yazı orijinali Max Design‘da yayınlanmış olan “CSS Centering – fun for all!” isimli yazının Türkçe çevirisidir.

CSS kullanarak bir içerik bloğunu nasıl ortalarsınız? Bunun için hali hazırda iki metot var ve seçiminizi sayfanızın likit (tarayıcı penceresinin boyutlarına göre boyutları değişen tasarım) ya da sabit genişlikli bir tasarım olmasına göre yapmalısınız.

Likit tasarımlarda ortalama

Likit tasarımlarda içerik bloğunu her iki tarafına da marjin koyarak kolayca ortalayabilirsiniz. Marjinler em, piksel ya da yüzde birimi olarak ayarlanabilir.

div#container
{
margin-left: 10%;
margin-right: 10%;
}

Sabit genişlikli tasarımlarda ortalama

Teorik olarak içerik bloğunun sağına ve soluna otomatik marjinler verdiğinizde bloğun ortalanması lazım.

W3C görsel biçimlendirme modeli‘ne göre: “Eğer ‘margin-left’ ve ‘margin-right’ değerleri ‘auto’ ise, her ikisi de eşit değer kullanır. Bu da elemanı içerik bloğunun kenarlarına göre ortalar.”

Yani bir içerik bloğu şu kurallar uygulanarak ortalanabilir:

div#container
{
margin-left: auto;
margin-right: auto;
width: 50em;
}

Ne varki bazı tarayıcılar otomatik marjinleri gözardı ettiklerinden bu şekilde içerik bloklarını ortalamazlar. Bahsettimiz tarayıcılar arasında şunlar vardır:

  • NN4 (Mac ve Win)
  • Win/IE4
  • Win/IE5
  • Win/IE5.5
  • Win/IE6 (quirks modda)

Basit iki kural ekleyerek yukarıda saymış olduğumuz tarayıcılardan NN4 haricinde diğerlerinde bu problemi giderebiliriz.

1. body’yi ortala

Her ne kadar bu tarayıcılar otomatik marjinleri göz ardı etseler de “text-align: center” şeklinde bir kuralı hepsi tanır. Bu kuralı body elemanına uygularsak içerik bloğu doğru bir şekilde ortalanır. Yani yeni bir kural eklendi:

body
{
text-align: center;
}

div#container
{
margin-left: auto;
margin-right: auto;
width: 50em;
}

2. text-align’ı sıfırla

Yeni kural ile ilgili tek problem, artık sayfadaki tüm elemanlar ortalandı. Bu tümünü ortalama probleminin üstesinden gelmek için yeni bir içerik bloğu ekleyerek “text-align: left” kuralını uygulayalım. Sonuç CSS kodu şu şekilde:

body
{
text-align: center;
}

div#container
{
margin-left: auto;
margin-right: auto;
width: 50em;
text-align: left;
}

Sonuçlar

İlk örnek sayfa bir içerik bloğunun otomatik marjinler kullanılarak, body ortalanmadan nasıl ortalanacağını gösteriyor.

“text-align: center” olmadan ortalama, örnek sayfası

İkinci örnek sayfa, bir içerik bloğunun otomatik marjinlerle nasıl sayfa içinde ortalanacağını ve aynı zamanda body elemanının ortalanmasını ve içerik bloğunda “text-align: left” kullanımını gösteriyor.

“text-align: center” ve “text-align: left” ile ortalama, örnek sayfası

Çeviriler

Bu makale Rodrigue tarafından Fransızca‘ya çevrilmiştir.

“CSS ile ortalama” üzerine 8 yorum

  1. Günümüzde artık tabloları bırakıp genel tasarımlarda da CSS’e geçmemiz kaçınılmaz oldu. CSS ilk başlangıçta insanları biraz zor ve karmaşık gelebilir. CSS ile tasarım yapmak tablolara nazaran daha zevklidir. : ) Makale paylaşımı için teşekkürler.

  2. yolun başında olmama rağmen , sizin sayenizde çok güzel şeyler öğreniyoruz.. emeğinize sağlık hocam.. teşekkürler..

  3. Arkadasim zaten resimdede belirttigi gibi butun olarak kesmemis mavi alani sol ve sag kiskm seklinde kesmis boylelikle her 2 tarafada uzasada orta bolum sabit kalacaktir

  4. Css ile tablonun icindeki bir nesneyi nasıl ortalarız txt ortalamayı vermişsinizde hocam?

Yorumlar kapalı.