Bölüm 6

Tabloların Düzenlenmesi

Sayfa 5 / 6


Tablolarda Verilerin Hizalanması

 

 

Tablolarda Verilerin Hizalanması ve Kalıtımın Etkisi

 

HTML 4.01 kesin spesifikasyonu ile tablolarda devam ettirilen align niteliği, <colgroup>, <col>, <thead>, <tfoot>, <tbody>, <tr>, <th>, <td> elementleri ile kullanılabilir. Son ikisi dışında, diğerlerinin hepsi içeriğinde birden fazla hücre içerebilen kabuk tipi içerik sağlayıcı elementlerdir. Bu elementlerin içerdiği hücrelerin hizalanma (align) niteliği kalıtımla kazananılabilecektir.

Eğer bir kabuk tipi elementinin içerdiği çok sayıda hücre varsa, bu hücrelerin hizalanma niteliklerinin hepsinde ayrı ayrı açık olarak belirtileceği yerde, dış zarf olan kabul elementinde bir kez verilerek tüm içeriğe kalıtımla aktarılması, doğal olarak çok çekici bir kod ekonomisi sağlar. Kuramsal açıdan bu yöntem doğrudur, ama gerçek yaşamda olaylar çok farklı gelişebilir.

İlk olarak, kalıtımla aktarılabilecek hizalanma bilgisi, kabuk elementinin kapsamı içindeki tüm hücrelere uygulanır. Kabuk elementinin içerdiği tüm hücreler için bu bilginin uygun olması gerekir. Eğer bir veya birkaç hücre için farklı hizalanma bilgisi gerekiyorsa, bu bilgi farklı hücreler için açık olarak verilmelidir. Bu durum, kod ekonomisini azaltan bir olgudur. Eğer fazla özel bildirim gerekiyorsa, genel bir kalıtım mekanizması, kod ekonomisi açısından fazla yararlı olmaz.

İkinci bir sorun olarak, kalıtım mekanizmasının desteği her zaman kolay kontrol edilemez. Bazen belge çözümleyiciler öngörülen kalıtım niteliğinin aktarımında yetersiz kalır. Bazen bir belge çözümleyicinin destekleyebildiği bir kalıtım başka bir belge çözümleyicide gerçekleştirilemez. Bazen yazar, karmaşık kalıtım kuralları içinde yeterince yetkin olmaz ve sonuçta işler düşünüldüğü şekilde gerçekleşmez.

Kalıtım için, bugün en doğru davranış, bu kuralları olabildiğince iyi özümsemek fakat kesinlikle güvenmemektir. Eğer kalıtım sayesinde hissedilir bir kod azalması sağlanabilecekse, öncelikle kalıtım mekanizması denenmelidir. Alınan sonuçlar, Internet Explorer, Netscape grubu belge çözümleyiciler ve Opera da yeterli olursa, o zaman sorun kalmayacaktır. Alınan sonuçlar yeterli olmazsa, tüm hücreler için öngörülen özellikler açık olarak bildirilmelidir. Bu en doğru ve güvenli davranış biçimi olacaktır.

Hizalama Özelliklerinin Kalıtımla Geçmesi :

align, char ve charoff için kalıtım öncelikleri (yüksek öncelikten daha düşük önceliğe doğru) :

  1. Hücre içinde bildirilen bir elementin hizalama niteliği (örnek olarak <p> elementi gibi) ( bu nitelik HTML 4.01 kesin spesifikasyonuna göre artık terkedilmiş ve sadece CSS uygulamaları ile yapılır hale gelmiştir).
  2. Hücrenin kendisi ile birlikte doğrudan yapılan hizalama bildirimi (<th> ve <td> elementleri).
  3. <col> ve <colgroup> sütun gruplama elementleri düzeyinde yapılan hizalama bildirimi. Eğer hücre, birden çok sütun içeren bir açılım (span) içinde ise, hizalama özelliği, açılımın ilk sütunundan kalıtımla geçer.
  4. Satır <tr> elementi ile satır içerebilen kabuk elementleri <thead>, <tfoot>, <tbody> ile yapılan hizalama niteliği bildirimi. Eğer hücre, birden çok satır içeren bir açılım (span) içinde ise, hizalama özelliği, açılımın ilk satırından kalıtımla geçer.
  5. <table> Elementi ile bildirilen hizalama niteliği bildirimi.
  6. Varsayılan hizalama niteliği.

valign, lang, dir ve style için kalıtım öncelikleri (yüksek öncelikten daha düşük önceliğe doğru) :

  1. Hücre içinde bildirilen bir elementin niteliği (örnek olarak <p> elementi gibi)
  2. Hücrenin kendisi ile birlikte doğrudan yapılan nitelik bildirimi (<th> ve <td> elementleri).
  3. Satır <tr> elementi ile satır içerebilen kabuk elementleri <thead>, <tfoot>, <tbody> ile yapılan nitelik bildirimi. Eğer hücre, birden çok satır içeren bir açılım (span) içinde ise, özellik açılımın ilk satırından kalıtımla geçer.
  4. <col> ve <colgroup> sütun gruplama elementleri düzeyinde yapılan nitelik bildirimi. Eğer hücre, birden çok sütun içeren bir açılım (span) içinde ise, özellik açılımın ilk sütunundan kalıtımla geçer.
  5. <table> Elementi ile bildirilen nitelik değerleri.
  6. Varsayılan nitelik değerleri.

Ayrıca, hücreler görüntülenirken, yatay hizalanma için sütunlar, satırlara göre öncelik alır.

Varsayılan hizalama niteliği belge çözümleyicilere bağlıdır. Varsayılan değer, bütün belge çözümleyicilerce "left" olarak ayarlanmıştır.

Dikkat : Bir tablo hücresine, bir nitelik, ailesinden değil, açılımındaki ilk hücreden geçer. Bu olgu, genel kalıtım kurallarının bir istisnasıdır.

Kalıtım üzerine söylenebilecek sonsöz "kalıtıma güvenme, kalıtımsız da kalma !" olabilir. Çalıştığında yararlı olabilecek bir özellik olan kalıtımdan yararlanmış kodlar, ancak iyi denendikten sonra kullanıma açılabilir.

Kalıtım, siz görmesiniz de sizi saran hava gibidir. Siz kullanmasanız da kodlarınızı etkileyen bir etkendir. Bu nedenle, kodlamada bir şeyler düzgün gitmezse, ilk kontrol edilecek etki kalıtım olmalıdır. Kodların yazılımında, kalıtım etkileri olabildiğince hesaba katılmalı, bu etkiler iyi tanınmalı ve sürprizlere yol açılmamalıdır. Kalıtım etkisinin farklı belge çözümleyicilerde farklı olarak görülebileceği unutulmamalı ve tüm kodların iyi bir şekilde denemesi yapılmadan Web sitesi kullanıma açılmamalıdır.

Her durumda, belge çözümleyicilerdeki destek açısından en güvenli kodlama yönteminin, kalıtım mekanizmasına güvenmeden her element için niteliklerin açık olarak bildirimi yapılmış ve belki de en uzun yol olan bir kodlama yöntemi olabileceği düşünülmelidir.

 

Wednesday, October 5, 2005 17:48

validate in W3C !Valid HTML 4.01!