Afili bir CSS dokümanı nasıl olmalı?

Bugün Fatih Hayrioğlu’nun not defterinde okuduğum “CSS Kod Yazma Düzeni” adlı yazı üzerine ben de kendi görüşlerimi paylaşayım ve uzun süren sessizliğimi bozayım dedim. Yazıya devam etmeden önce, Fatih’in yazısını okumanızı tavsiye ederim.

Fatih, kendi geliştirme sürecinden yola çıkarak, CSS kodu yazarken nelere dikkat edilmesi gerektiği, nasıl bir düzen/standart oluşturmanız gerektiği hakkında, maddeler halinde çok güzel bir yazı hazırlamış. Çoğu maddeye katılsam da kısmen katılmadığım maddeler ve eklemek istediğim noktalar söz konusu. Katılmadığım, farklı görüş bildireceğim noktalar ve eklemek istediklerime gelirsek;

Okumaya devam et Afili bir CSS dokümanı nasıl olmalı?

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%;
}Code language: CSS (css)

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;
}Code language: CSS (css)

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;
}Code language: CSS (css)

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;
}Code language: CSS (css)

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.