Menu

colspan dan rowspan HTML: Cara Menggabungkan Sel Tabel

Gabungkan sel tabel ke samping melintasi kolom dengan colspan dan ke bawah melintasi baris dengan rowspan. Pelajari cara menghitung sel supaya tabel tetap rapi, membuat header berkelompok, dan menjaga tabel dengan sel gabungan tetap mudah dibaca screen reader.

Halaman ini dilengkapi editor yang bisa dijalankan. Edit, jalankan, dan lihat output-nya seketika.

colspan: satu sel melintasi beberapa kolom

colspan="n" membuat sebuah sel selebar n kolom. Baris tempat sel itu berada lalu punya n - 1 sel lebih sedikit. Di sini total membentang di dua kolom pertama:

Baris terakhir punya dua sel, tapi sel pertama dihitung dua, jadi baris itu tetap berjumlah tiga kolom seperti baris lainnya.

rowspan: satu sel ke bawah melintasi beberapa baris

rowspan="n" membuat sebuah sel setinggi n baris. Baris di bawahnya melewatkan kolom itu, karena sel yang tinggi tadi sudah mengisinya:

Baris untuk Bob dan Cy hanya punya satu <td>: kolom Team sudah diisi oleh "Design". Tidak ada yang menandai hal itu di HTML, jadi baca tabel dengan rowspan dari atas ke bawah dan catat kolom mana yang masih tertutup.

colspan dan rowspan sekaligus: sebuah jadwal

Satu sel bisa membentang ke dua arah. Jadwal pelajaran adalah contoh klasiknya, dengan beberapa kelas yang berlangsung dua slot dan beberapa yang berjalan dua hari:

Hitung baris 10:00: header waktu, lalu Mon tertutup oleh HTML dari baris di atasnya, lalu Lab mengisi Tue dan Wed. Pada 11:00, Mon kosong lagi dan Lab masih menutupi Tue dan Wed, jadi baris itu punya satu sel data.

Menghitung sel supaya tabel tetap rapi

Setiap baris harus berjumlah kolom yang sama, dengan menghitung colspan setiap sel dan kolom yang tertutup oleh sel rowspan dari atas. Saat sebuah baris punya satu sel terlalu banyak, browser menambahkan kolom baru untuknya dan tepi tabel jadi tidak rata:

Di tabel yang salah, baris kedua lupa bahwa A menutupi kolom pertamanya, jadi D mendarat di kolom ketiga yang tidak dimiliki baris lain. Perbaikannya adalah menghapus satu sel. Kesalahan yang sama dengan colspan adalah tetap menyimpan semua sel asli di baris yang berisi sel lebar itu.

Kekurangan satu sel adalah masalah sebaliknya: barisnya berakhir terlalu cepat dan menyisakan lubang di ujungnya.

Header berkelompok dengan colspan

Sebuah header bisa membentang di atas kolom-kolom yang diberinya label, di atas baris header yang lebih spesifik. Tandai dengan scope="colgroup" supaya screen reader menerapkannya ke semua kolom di bawahnya:

"City" membentang di kedua baris header dengan rowspan="2", dan setiap bulan membentang di dua kolomnya dengan colspan="2". Elemen <colgroup> mendefinisikan kelompok kolom yang dirujuk oleh scope="colgroup". Screen reader di sel 31 milik Rome lalu bisa mengucapkan "Rome, July, High, 31". Untuk struktur tabel lainnya, lihat tabel HTML.

Pakai span hanya untuk struktur yang nyata

Span membuat tabel lebih sulit dibaca dengan screen reader dan lebih sulit diurutkan, difilter, atau disalin ke spreadsheet. Pakai span saat datanya memang berkelompok (total, header di atas sub-kolom, kelas yang berlangsung dua jam). Kalau sebuah tabel butuh banyak span, dua tabel yang lebih sederhana sering lebih jelas.

Kesalahan umum

  • Membiarkan sel yang tertutup tetap ada. Sel colspan="2" menggantikan dua sel; hapus salah satu sel aslinya.
  • Melupakan baris di bawah rowspan. Setiap baris itu butuh satu sel lebih sedikit.
  • Menulis colspan di <tr>. Atribut ini hanya berfungsi di <td> dan <th>.
  • Span untuk tata letak visual, seperti baris banner di tabel yang dipakai untuk tata letak halaman. Pakai CSS grid untuk tata letak.
  • colspan="100%" untuk berarti "selebar penuh". Browser hanya membaca angka di awalnya, jadi sel ini membentang 100 kolom dan menambahkan kolom kosong ke tabel. Nilainya adalah jumlah kolom berupa bilangan bulat.

Pertanyaan yang sering diajukan

Apa fungsi colspan di HTML?

colspan membuat <td> atau <th> membentang melintasi beberapa kolom: <td colspan="3"> menggantikan tiga sel di barisnya. Baris itu jadi butuh dua sel lebih sedikit daripada baris lainnya.

Apa fungsi rowspan di HTML?

rowspan membuat sebuah sel membentang ke bawah melintasi beberapa baris: <td rowspan="2"> mengisi barisnya sendiri dan baris di bawahnya. Baris berikutnya harus melewatkan kolom itu, karena sel di atasnya sudah menutupinya.

Bisakah satu sel memakai colspan dan rowspan sekaligus?

Bisa. <td colspan="2" rowspan="2"> menutupi blok dua kolom kali dua baris. Setiap baris yang dilewatinya butuh dua sel lebih sedikit.

Kenapa tabelku punya sel tambahan yang menonjol keluar?

Ada baris yang punya lebih banyak sel daripada baris lain setelah span dihitung. Biasanya baris di bawah rowspan masih menulis sel untuk kolom yang sudah tertutup, atau baris dengan colspan masih menyimpan semua sel aslinya. Hapus <td> yang berlebih.

Berapa nilai maksimum colspan?

Browser membatasi colspan sampai 1000 dan rowspan sampai 65534. Untuk colspan, nilai 0 atau nilai yang tidak diawali angka dianggap sebagai 1.

Ilustrasi bahasa pemrograman di Coddy

Belajar coding dengan Coddy

Mulai