CSS İle İlişkisel Font-Size

CSS İle İlişkisel Font-Size

Herkese merhaba, şimdi “CSS ile ilişkisel Font-Size da ne?” dediğinizi duyar gibi oluyorum:) Açıkçası tam olarak nasıl ifade edebileceğimi bilemedim.  Bu yazımda bir web uygulamasında, CSS yoluyla etiketler arasında font-size değerlerinin nasıl atanması gerektiğini, nasıl bir yapı kurmamız gerektiğini incelemeye çalışacağım.

Klasik HTML yoluyla font değerlerinin etiketler içerisinden tanımlandığı taş devrini geride bıraktık artık. Bugün CSS teknolojisiyle etiketlere dair font parametrelerini CSS üzerinden tanımlayabiliyoruz.

Genel Font-Size Tanımı

Pratik durum üzerinden devam edersek, bir web uygulaması geliştirdiğimizi düşünelim ve tabi ki font özelliklerimizi CSS dosyamızda tanımlıyoruz. İlk font tanımlamamızı nerede yapmamız uygun olur? Hep birlikte aşağıdaki gibi bir başlangıç yapalım…

body {font-size: 12px;}

Burada body etiketi için font-size tanımlamamızı yapmış ve değerini 12 piksel olarak atamış olduk. Font-boyut değerleri diğer alt etiketler tarafından miras (inheritance) alınmaktadır. Inheritance konusunda detaylı makaleye buradan ulaşabilirsiniz. Yapmış olduğumuz bu tanımlama, site için font boyut değerinin her yerde 12 piksel olmasını sağladı.

Burada dikkat edilirse font büyüklüğü px cinsinden verilmiştir. Font büyüklük birimleri sabit ve ilişkisel olmak üzere ikiye ayrılmaktadır. Px birimi ilişkisel bir birimdir ve monitörün çözünürlüğüne bağımlıdır. Font büyüklük değerinin px olarak verilmesi son kullanıcı açısından bazı erişilebilirlik problemleri oluşturmaktadır.

px, %, em

Örneklemek gerekirse, modern web tarayıcılarında kullanıcılar kendi ihtiyaçlarına göre erişilebilirlik standartları çerçevesinde tarayıcı ayarlarından metin boyutlarını ayarlayabilmektedirler. Gözleri az gören bir amcamız bu şekilde metin boyutunu büyüterek içeriği okuyabilmektedir. Fakat IExplorer üzerinden konuşursak; px birimiyle yapılmış bir ölçülendirme kullanıcın IExplorer üzerinden metin boyut ayarlaması yapmasını engellemektedir. Bu sebeple pixel dışında monitor çözünürlüğünden bağımsız bir ilişkisel ölçü birimi kullanmamız doğru olacaktır. Ben kendi uygulamalarımda % kullanarak body {} içerisinden tanımlamamı gerçekleştiriyorum.

 body {font-size:75%;}

Tabi sadece body etiketi için böyle bir tanımlama yapmak yeterli olmuyor. Uygulamanın ihtiyaçları neticesinde CSS dokümanımızda pek çok font büyüklük tanımlaması yapıyoruz. Bu tanımlamalarda da aynı şekilde net-kesin tanımlamalar yapmak yerine ilişkisel tanımlamaları tercih etmeliyiz.

body {font-size:75%;}
p {font-size:11px;}

Eğer CSS dokümanımızda, yukarıdaki örnekteki gibi font büyüklük tanımlamaları bazı yerlerde ilişkisel, bazı yerlerde ise sabit değerler üzerinden yapılmışsa; IExplorer üzerinde metin boyut ayarı yapmak isteyen kullanıcı, sadece sitenin paragraf etiketi dışında kalan font büyüklüklerini değiştirebilecektir. Paragraf içerisindeki metin boyutu ise hiç etkilenmeyecek ve hep 11px olarak kalacaktır. Bu da pek hoş bir durum oluşturmayacaktır.

Satır Yüksekliği Atayalım

Peki, paragraf için font büyüklük değerinin de ilişkisel olarak yazalım ve body için bir satır yüksekliği değeri tanımlayalım.

body {font-size: 75%; line-height:16px;}
p {font-size:0.9em}

Bu durumda yine benzer bir sorunla karşılaşmaktayız. Kullanıcı yine metin boyut ayarı yapmak istediğinde bu sefer paragraf içindeki metinlerde aynı oranda büyüyecektir. Ama bu seferde satır yüksekliği aynı değerde kaldığı için metin boyutu büyüdükçe daka sıkışık bir yapı oluşacak, satırlar birbirine girecektir. Bu yüzden satır yüksekliğini de ilişkisel tanımlamamız doğru olandır.

body {font-size: 75%; line-height:1.5em;}
p {font-size:0.9em}

Tasarımcı Açısından Problem

Son kullanıcıyı bir kenara bırakıp biz web geliştiricileri açısından düşündüğümüzde de başka bir sorunla karşılaşırız. Web uygulamaları geliştirirken CSS içerisinde pek çok font-size ataması yaparız. Eğer bir gün web uygulamasındaki font büyüklüğünün genel olarak değiştirilmesini gerekirse, ilişkisel bir yapıda sadece body etiketi içerisindeki boyutun değiştirilmesi yeterli olacaktır. Paragraf ve satır yüksekliği bu değişiklikten otomatik olarak etkilenecektir.

body {font-size: 85%; line-height:1.5em;}
p {font-size:0.9em}

Eğer yapımız ilişkisel değil ve kesin font boyut değerleri içeriyorsa manuel olarak bu değerleri tek tek değiştirip, yeniden ayarlama yapmak zorunda kalacağız. Şimdi uğraş dur:)

Hemen Paylaş!
  • Digg
  • del.icio.us
  • Facebook
  • Google Bookmarks
  • Live
  • MySpace
  • LinkedIn
  • Technorati
  • Netvibes
  • FriendFeed
  • Reddit
  • Yahoo! Bookmarks

Fırından yeni çıkmış yazılardan haberdar olmak için RSS yayınıma abone olabilir ya da beni Twitter'dan takip edebilirsiniz.

Yorumla Bakalım

Yorumlara Git

Daha Fazlasını Oku!

Makale Detayı

Bu Makale için toplam 2 adet yorum bulunmaktadır...

Bu Makale 25 January, 2009 ve saat 2:52 itibariyle CSS kategorisi altına kaydedilmiştir. Bu makale ile ilgili yorumları RSS 2.0 beslemesinden takip edebilirsiniz.. Bu makale için yorum yapabilir, veya kendi web sitenize trackback sağlayabilirsiniz...

CSS İle İlişkisel Font-Size için toplam 2 yorum var...

  1. Wavatar fatihturan Diyorki:

    Aslına bakarsan bu yazıda anlattığın yöntem doğru ama artık tarayıcı geliştiricileri (Mozilla, Opera, Microsoft vs…) artık tarayıcılarında tam sayfa yakınlaştırma (full page zoom) denen özelliği ekliyorlar (ki en güzeli de bu bana kalırsa).

    Bahsettiğim tam sayfa yakınlaştırma özelliği şu anda IE 7, IE 8, Firefox 3, Opera’da bulunmakta.

    Sonuç olarak bu ilişkisel font boyutu yönteminin bir süre sonra tarih olacağı kanısındayım.

    1
  2. Wavatar oztecnic Diyorki:

    @fatihturan yorumun için teşekkür ederim…

    Dedigin konuda haklısın, yanlız tarayıcılar page zoom özelliğini uygulamalarına entegre ederken, öte yandan sadece metin boyutunu değiştir opsiyonunu da saklıyorlar. Örnek vermek gerekirse Firefox…

    Kişisel olarak page zoom özelliğinin, yani metinle birlikte diğer ögelerin de büyütülmesi yaklaşımını bende daha doğru buluyorum…

    2

Yorumla

Yorumunuzu ve katkılarınızı sabırsızlıkla bekliyoruz :)

Yukarıya Çık