Menu

HTML Table: Tablo Oluşturma, Satırlar, Sütunlar ve Başlıklar

HTML'de tablo oluşturma: <tr> ile satırlar, <td> ile hücreler, <th> ve scope ile başlık hücreleri, caption, thead, tbody ve tfoot, zebra çizgiler ve küçük ekranlarda kayan tablolar.

Bu sayfada çalıştırılabilir editörler var - düzenle, çalıştır ve sonucu anında gör.

HTML'de tablo nasıl oluşturulur

Bir tablo, satırlardan (<tr>) oluşan bir <table> elementidir ve her satır hücrelerden oluşur: başlık hücreleri için <th>, veri hücreleri için <td>.

Tablonun kendine ait kenarlığı yoktur; hücreleri görebilesin diye tek bir CSS kuralı onları ekler. Sütunlar hücrelerden gelir: her satırın ilk hücresi birinci sütun, ikincisi ikinci sütun olur ve böyle devam eder. Her satırda aynı sayıda hücre olmalı. Bir <td> sil, o satır erken biter ve bir boşluk bırakır.

<th> hücreleri varsayılan olarak kalın ve ortalanmıştır. Bu yalnızca görünüştür; önemli olan onların etiket olmasıdır, bir sonraki bölüm de bununla ilgili.

Tablo elementleri

ElementNe olduğu
<table>Tablo
<caption>Tablonun başlığı, <table> elementinin ilk çocuğu
<thead>Başlık satırları grubu
<tbody>Gövde satırları grubu (bir tabloda birkaç tane olabilir)
<tfoot>Toplamlar gibi alt satırlar grubu
<tr>Bir satır
<th>Bir başlık hücresi
<td>Bir veri hücresi
<colgroup>, <col>Bütün bir sütuna stil vermek için sütunlar (genişlikler, arka plan)

Kenarlıklar HTML tablo kenarlığı sayfasında, birkaç sütuna ya da satıra yayılan hücreler de colspan ve rowspan sayfasında anlatılıyor.

Başlık hücreleri, scope ve caption

Hem üstte hem yanda başlıkları olan bir tablonun, her başlığın hangi yönü gösterdiğini belirtmesi gerekir. scope="col" altındaki sütunu, scope="row" yanındaki satırı etiketler. <caption> tabloya görünür bir başlık verir:

Bu işaretlemeyle 14:00 hücresine gelen bir ekran okuyucu "Saturday, Closes, 14:00" diye duyurabilir, böylece sayı hiçbir zaman tek başına okunmaz. Tek bir başlık satırı olan basit bir tabloda tarayıcılar başlıkları genellikle scope olmadan da çıkarır, ama onu yazmanın bir maliyeti yoktur ve tahmin işini ortadan kaldırır.

Caption aynı zamanda bir ekran okuyucunun tabloya ulaştığında duyurduğu şeydir. Onu, tabloya bağlı olmayan ve tablonun üstüne konan bir başlığa tercih et.

thead, tbody ve tfoot

Üç grup satırları başlık, gövde ve alt kısım olarak ayırır. Toplamların yeri alt kısımdır:

İki ayrıntı sayıları okunur yapar: text-align: end ondalık noktaları hizalar (her fiyatın iki ondalığı var), font-variant-numeric: tabular-nums de her rakama aynı genişliği verir.

İlk örnekteki gibi <tr> elementini doğrudan <table> içine yazarsan, tarayıcı satırların çevresine yine de bir <tbody> ekler. table > tr gibi bir CSS seçicisinin hiçbir şeyle eşleşmemesinin nedeni budur: sayfada satırlar tbody içindedir. table tr kullan ya da <tbody> etiketini kendin yaz.

Tabloya stil vermek: çizgiler, hover ve genişlik

:nth-child satırları dönüşümlü olarak renklendirir, :hover işaretçinin altındaki satırı vurgular, width: 100% da tabloyu kapsayıcısı boyunca uzatır:

text-align: start başlık metnini altındaki verilerle hizalar; aksi hâlde th ortalanmıştır. left yerine start kullanmak, sağdan sola yazılan dillerde hizalamayı doğru tutar.

Kayan responsive tablolar

Bir tablo içeriğinin genişliğinden daha fazla küçülemez. Telefonda geniş bir tablo bütün sayfayı yana iter. Onun yerine onu kayan bir kapsayıcıyla sar:

Kapsayıcı burada telefon ekranı gibi davransın diye 300 pikselle sınırlandı; onu yana kaydır. tabindex="0" klavye kullananların kapsayıcıya odaklanıp onu ok tuşlarıyla kaydırmasını sağlar, aria-label ile birlikte role="region" de o durağa bir ad verir.

Tablolar veri içindir

İçerik gerçekten satırlar ve sütunlardan oluşuyorsa tablo kullan: fiyatlar, programlar, karşılaştırmalar, sonuçlar. Sayfada şeyleri yan yana yerleştirmek için tablo kullanma. Yerleşim tabloları, hiçbir anlam taşımayan satırları ve sütunları duyuran ekran okuyucuların kafasını karıştırır ve küçük ekranlara uyum sağlayamaz. Yerleşimi CSS flexbox ve grid yapar.

Sık yapılan hatalar

  • Farklı sayıda hücresi olan satırlar. Kısa satırlar erken biter ve sütunlar hizasını kaybeder.
  • Başlıklar için kalın metinli <td> kullanmak. Başlıklar gerçek etiket olsun diye <th> kullan.
  • Artık kullanılmayan özellikler: border, cellpadding, cellspacing, bgcolor ve align. Onların yerine CSS kullan.
  • İçeriği herhangi bir hücrenin dışında, doğrudan <tr> ya da <table> içine koymak. Tarayıcılar onu tablonun dışına, genellikle üstüne taşır.
  • <caption> yerine tablonun üstünde bir başlık.
  • CSS'te table > tr. Tarayıcı bir <tbody> ekledi; table tr ya da tbody tr yaz.

Sıkça Sorulan Sorular

HTML'de tablo nasıl oluşturulur?

Onu <table> ile sar, her satır için bir <tr> yaz ve hücreleri içine koy: başlık hücreleri için <th>, veri hücreleri için <td>. Bazı hücreler birkaç sütuna yayılmadığı sürece her satırda aynı sayıda hücre olmalı.

th ile td arasındaki fark nedir?

<th> bir sütunu ya da satırı etiketleyen başlık hücresidir, <td> ise veri hücresidir. Tarayıcılar <th> hücresini kalın ve ortalanmış gösterir, ekran okuyucular da sayılar anlam kazansın diye her veri hücresinden önce ilgili başlığı okur.

thead, tbody ve tfoot ne işe yarar?

Satırları tablonun başlığı, gövdesi ve alt kısmı (toplamlar) olarak gruplarlar. Yapıyı yardımcı teknolojiler için netleştirir, CSS'e hedefleyecek bir şey verir ve uzun bir tablo yazdırıldığında tarayıcılar <thead> satırını her sayfada tekrarlayabilir.

HTML tablomda neden kenarlık yok?

Tabloların varsayılan olarak kenarlığı yoktur. Onları CSS ile ekle: table { border-collapse: collapse; } th, td { border: 1px solid #ccc; }. Eski border="1" özelliği artık kullanılmıyor.

Bir HTML tablosunu nasıl responsive yaparım?

Tabloyu overflow-x: auto olan bir kapsayıcıya koy. Dar bir ekranda tablo, bütün sayfayı genişletmek yerine kapsayıcının içinde yana kayar.

Coddy programming languages illustration

Coddy ile kodlamayı öğren

BAŞLA