Tablo Özellikleri
Daha önce "CSS ile Tabloları şekillendirmek" adlı makalemizde tablo yapılarını gördük ve görünümünü daha güzel nasıl yaparız onun üzerinde durmuştuk. W3C bu durumu göz önünde bulundurarak tablo ve tablo elementlerinin görünümünü düzenlemek için tablo özellikleri ekledi. Tablolar diğer HTML elementlerinden daha farklı kendine has elementlerdir ve farklı özellikleri vardır. Burada CSS2 ile birlikte gelen yeni özellikleri inceleyeceğiz.
CSS2 ile birlikte gelen bu özelliklerden birçoğumuzun haberi olmayabilir. Ancak bizlere yardımcı olacak bu özelliklere göz atmak güzel. Bu özellikleri uygulamamızda en önemli etken tabiki IE’nin bu özelliklerin bir kısmını desteklememesidir. Bu tabiki IE’ye puan kaybettiriyor ve Microsoft’da bunun farkına geçte olsa vardığı söyleniyor ve IE8 ile birlikte tam CSS desteğini bizlere sunacakmış, tabi o zamana kadar Firefox IE’yi silip süpürmezse :D
table-layout
Yapısı : table-layout: <deger>
Aldığı Değerler : auto | fixed | kalıtsallık
Başlnagıç değeri: auto
Uygulanabilen elementler: display: table ve display:inline-table olarak belirlenen elementlere
Kalıtsallık: Var
Internet Explorer 5.0+
Firefox 1+
Opera 9.2+
Safari 1.3+
Chrome 2+
W3C’s CSS Level 2+
CSS Profile 2.0
Normalde tablolar içeriğindeki bilgiye göre genişliğini arttırır. Bu bize bir esnek kazandırır ancak bazen tablo genişliğimizin sabit kalmasını isteriz. table-layout:fixed değeri tablo genişliğimizi sabitlememizi sağlar. table-layout:auto ise tablo genişliğini içeriğe göre arttırır.
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>table-layout örneği</title>
<style>
table.otomatik {table-layout: auto; width: 350px; border-collapse: collapse;}
table.sabit {table-layout: fixed; width: 350px; border-collapse: collapse;}
td, th {border: 1px solid;}
</style>
</head>
<body>
<table cellpadding="0" cellspacing="0" class="otomatik">
<caption>
Limitli ADSL Fiyatları
</caption>
<tr>
<th>Hızı*(Kbps) </th>
<th>Kota(GB) </th>
<th>Bağlantı Ücreti** </th>
<th>Aylık Ücret </th>
<th>Limitin Üzerindeki Her MB için Ücret*** </th>
</tr>
<tr>
<td>1024/256'e kadar</td>
<td>4</td>
<td rowspan="3">29 YTL</td>
<td>29 YTL</td>
<td>0,010 YTL</td>
</tr>
<tr>
<td>1024/256'e kadar</td>
<td>6</td>
<td>39 YTL</td>
<td>0,009 YTL</td>
</tr>
<tr>
<td>2048/512'e kadar</td>
<td>6</td>
<td>49YTL</td>
<td>0,009 YTL</td>
</tr>
</table>
<table cellpadding="0" cellspacing="0" class="sabit">
<caption>
Limitli ADSL Fiyatları
</caption>
<tr>
<th>Hızı*(Kbps) </th>
<th>Kota(GB) </th>
<th>Bağlantı Ücreti** </th>
<th>Aylık Ücret </th>
<th>Limitin Üzerindeki Her MB için Ücret*** </th>
</tr>
<tr>
<td>1024/256'e kadar</td>
<td>4</td>
<td rowspan="3">29 YTL</td>
<td>29 YTL</td>
<td>0,010 YTL</td>
</tr>
<tr>
<td>1024/256'e kadar</td>
<td>6</td>
<td>39 YTL</td>
<td>0,009 YTL</td>
</tr>
<tr>
<td>2048/512'e kadar</td>
<td>6</td>
<td>49YTL</td>
<td>0,009 YTL</td>
</tr>
</table>
</body>
</html>

Örneği görmek içintıklayınız.
caption-side
Yapısı :caption-side: <deger>
Aldığı Değerler :top | bottom | inherit
Başlnagıç değeri:top
Uygulanabilen elementler:display: table-caption olarak belirlenen elementlere
Kalıtsallık:Yok
Not: CSS2 ile birlikte left ve right değerleride vardı ancak kullanışsızlığı nedeni ile CSS2.1′de kaldırıldı.
caption-side:Tablonun başlığının(<caption>) nerede(altta mı üstte mi) olacağını belirler.

Örneği görmek içintıklayınız.
Bu özelliği IE(ie5+/mac destekliyor) desteklemiyor. Tüm tarayıcıların desteklediği şekilde kod yazmak için <caption> etiketininalignözelliği kullanılmalıdır. Örnek:
<caption align="bottom"> ve <caption align="top">
Internet Explorer 8+
Firefox 1+
Opera 9.2+
Safari 1.3+
Chrome 2+
W3C’s CSS Level 2+
CSS Profile 2.1
border-collapse
Yapısı :border-collapse: <deger>
Aldığı Değerler :collapse | separate | kalıtsallık
Başlangıç değeri:separate
Uygulanabilen elementler:display:table ve display:table-caption olarak belirlenen elementlere
Kalıtsallık:Var
Internet Explorer 5.5+
Firefox 1+
Opera 9.2+
Safari 1.3+
Chrome 2+
W3C’s CSS Level 2+
CSS Profile 2.0
border-collapse, tablo hücrelerinin etrafındaki kenarlık ile olan mesafeyi azaltmamızı veya açmamızı sağlar.separateataması yapılmış ise hücreler arasına bir kaç piksellik mesafe konur, HTML içinden bu boşlukları <table> etiketinin cellspacing özelliği ile kaldırmak istesek bile tarayıcılar bu seferde iki kenarlığı bir bir üstü gösterecektir. Eğercollapsedeğeri verilirse iki hücre arasındaki mesafe kalkacaktır ve tek kenarlık görünecektir.
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>border-collapse örneği</title>
<style>
table.ayri { border-collapse: separate; }
table.birlesik { border-collapse: collapse; }
td { border: 1px solid black; padding: 3px; }
</style>
</head>
<body>
<table cellspacing="0" class="ayri">
<tr>
<td>hücre1</td>
<td>hücre2</td>
</tr>
<tr>
<td>hücre3</td>
<td>hücre4</td>
</tr>
</table>
<table border="0" cellspacing="0" class="birlesik">
<tr>
<td>hücre1</td>
<td>hücre2</td>
</tr>
<tr>
<td>hücre3</td>
<td>hücre4</td>
</tr>
</table>
</body>
</html>
Örneği görmek içintıklayınız.

border-spacing
Yapısı :border-spacing: <deger>
Aldığı Değerler :<uzunluk> <uzunluk>? | inherit
Başlangıç değeri:0
Uygulanabilen elementler:display:table ve display:table-caption olarak belirlenen elementlere
Kalıtsallık:Var
Internet Explorer 8+
Firefox 1+
Opera 9.2+
Safari 1.3+
Chrome 2+
W3C’s CSS Level 2+
CSS Profile 2.0
border-spacing, normal uzunluk değerleri alır veborder-collapse:separateile birlikte kullanılır. Eğer tek değer verilirse bu tüm kenarlar için geçerlidir, iki değer atanırsa ilki yatayda boşluk için ikincisi dikey de boşluk vermek için tanımlanmıştır.
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>border-spacing örneği</title>
<style>
table.ayri { border-collapse: separate; border-spacing: 3px 5px; }
table.birlesik { border-collapse: separate; }
td { border: 1px solid black; padding: 3px; }
</style>
</head>
<body>
<table cellspacing="0" class="ayri">
<tr>
<td>hücre1</td>
<td>hücre2</td>
</tr>
<tr>
<td>hücre3</td>
<td>hücre4</td>
</tr>
</table>
<table border="0" cellspacing="0" class="birlesik">
<tr>
<td>hücre1</td>
<td>hücre2</td>
</tr>
<tr>
<td>hücre3</td>
<td>hücre4</td>
</tr>
</table>
</body>
</html>
Örneği görmek içintıklayınız.

empty-cells
Yapısı :empty-cells: <deger>
Aldığı Değerler :show | hide | kalıtsallık
Başlangıç değeri:show
Uygulanabilen elementler:display:table-cellolarak belirlenen elementlere
Kalıtsallık:Var
Internet Explorer 8+
Firefox 1+
Opera 9.2+
Safari 1.3+
Chrome 2+
W3C’s CSS Level 2+
CSS Profile 2.0
Bir tabloya bazı değerler atadığımızda(örneğin kenarlık değeri) boş olan hücreler bu değeri görmez, bu durumu düzeltmek için boş olan hücreler için boş karakter( ) koyarız genel.empty-cellsözelliği ile boş kalan hücrelere nasıl davranması gerektiğini bildirebiliriz. göster(show) değeri ile hücrenin içeriği olan hücreler ile aynı özellikleri almasını sağlayabiliriz. gizle(hide) değeri ile de hücrenin yokmuş gibi davranmasını sağlarız.
Bu özellik Internet Explorer tarafından desteklenmemektedir.
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>empty-cells örneği</title>
<style>
table.goster { empty-cells:show }
table.gizle { empty-cells:hide }
td { border: 1px solid black; padding: 3px; }
</style>
</head>
<body>
<table cellspacing="0" class="goster">
<tr>
<td></td>
<td>hücre2</td>
</tr>
<tr>
<td>hücre3</td>
<td>hücre4</td>
</tr>
</table>
<table border="0" cellspacing="0" class="gizle">
<tr>
<td></td>
<td>hücre2</td>
</tr>
<tr>
<td>hücre3</td>
<td>hücre4</td>
</tr>
</table>
</body>
</html>
Örneği görmek içintıklayınız.

[...] caption-side [...]
Fatih Bey bir endüstri mühendisi olarak sitenizi inceledikçe yazılım hakkında ne kadar az şey bildiğimi farkediyorum, sayenizde css öğrenimim çok kolaylaştı, emekleriniz için çok teşekkürler, hepimizin ışığısınız.
valla hocam sizin gibiler sayesinde bende öğreniyorum özellikle sizi takip ediyorum emeğinize bilgilerinize ve aklınıza sağlık iyiki varsınız
hocam merhaba
<table><tr><td>çok uzun yazı</td><td>çok kısa yazı belki de menu </td></tr></table>
hocam brinci hücreye çok uzun bi yazı gelince , hemen sağdaki çok kısa içerikli hücrede onunla beraber aşağı iniyor ve ilk hücrenin tam ortasının hizasına geliyor
ben istiyorumki o hep tepede kalsın boyu uzamasın bunu nasıl yapıcaz
table-layout =fixed yapıyorum , hücre boyu sbt kalıyor ancak hücre soldaki hücrenin ortasının hizasına gelmiş
yardımlarının için teşekkürler
Merhaba Fatih bey. Biz bir şey sormak istiyoruz fakat nereye yazacağımıza karar veremedim onun için buraya yazıyoruz. Bizim sorum şu. Biz bir tablo yaptık ve içerisinde 1 adet resimle, 2 adet link var. Şimdi css ile tablonun üzerine gelince hover özelliği ile border renklerini değiştiriyorum. Fakat ben tablo üzerine gelince resimin ve linklerinde hover özellikleri yapabiliriz. Fakat bu istediğimi CSS ile yapabilme gibi bir şansımız varmı acaba? Şimdiden teşekkür ederiz
Merhaba hocam
http://www.cagdasim.com/yemek.html linkine bakarsanız çok sevinirim.. bu tabloya css ile özellikler atadım. ie de herşey istediğim gibi ancak ff da problemli.. ne yapabilirim.. yardımcı olursanız çok memnun olurum…
Firefox de caption içeren bir table elementine margin-top uygulandığında boşluk sadece tablonun gövdesine uygulanıyor ve caption ile tablo arasında boşluk oluşuyor. Emin olmamakla birlikte bir ff bug’u gibi duruyor.
tabloların link özelliği yoktur, ama tablo içindeki metinlere link verip başkasayfaya gönderebilirsiniz.
Hocam table’ların link özelliği varmıdır,nasıl yapabiliriz.Bilgilerimizi tabloya yazdırdıktan sonra bilginin üzerine tıklayarak başka bir sayfaya
nasıl geçiş yapabiliriz.
hocam sizin sayenizde bir çok sorumun cevabını buldum..
başarılarınızın devam dilerim..