Menu

Border Tabel HTML: Collapse, Garis dan Sudut Membulat

Cara menambahkan border ke tabel HTML dengan CSS: garis tunggal dengan border-collapse, border-spacing, garis baris saja, border bagian dalam saja, sudut membulat, dan kenapa atribut border sudah usang.

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

Cara menambahkan border ke tabel

Secara default tabel tidak punya border. Tambahkan dengan CSS: border pada setiap sel menggambar kisi-kisinya, dan border-collapse: collapse pada tabel menggabungkan setiap pasangan border yang bersebelahan menjadi satu garis.

Shorthand border menerima lebar, gaya dan warna, dalam urutan apa pun: 1px solid #6b7280. Letakkan di th, td, jangan hanya di table: border pada tabel hanya menggambar bingkai luarnya.

border-collapse: separate vs collapse

border-collapse menentukan apakah sel-sel berbagi border.

NilaiHasil
separate (default)Setiap sel punya border-nya sendiri, dengan celah di antara sel yang diatur oleh border-spacing
collapseSel yang bersebelahan berbagi satu border; border-spacing diabaikan

Di tabel separate kamu bisa melihat kedua lapisannya: bingkai tabel biru dan kotak kuning terpisah di sekeliling setiap sel, dengan border-spacing di antaranya. Ganti 6px menjadi 0 dan sel-selnya saling menempel, tapi garisnya tetap ganda. Hanya collapse yang menggabungkannya.

Saat dua border dalam model collapse bertemu dan berbeda, yang lebih lebar yang menang. Kalau lebarnya sama, gayanya yang menentukan (double mengalahkan solid, yang mengalahkan dashed dan dotted), dan kalau masih seri, border sel mengalahkan border baris, yang mengalahkan border tabel. Karena itulah tepi luar tabel collapse berwarna kuning, bukan biru: sel dan tabel sama-sama punya border solid 2px di sana, dan sel yang menang.

Hanya garis horizontal, atau hanya garis bagian dalam

Kebanyakan tabel modern tidak menggambar semua garis. Dua pola yang umum:

Tabel kedua menghapus border di sisi luar setiap sel di tepi. border-inline-start dan border-inline-end berarti awal dan akhir baris, jadi CSS yang sama tetap benar di bahasa yang ditulis dari kanan ke kiri, tempat sel pertama berada di sisi yang lain.

Sudut tabel membulat

border-radius tidak berpengaruh pada tabel dengan border-collapse: collapse. Tabel bersudut bulat memakai model separate tanpa spasi, dan menggambar setiap garis sekali dengan hanya memberi sel border bawah dan border akhir:

Dua sel di sudut header mendapat radius sendiri supaya background abu-abunya mengikuti lengkungan. Tanpa itu, sudut persegi keduanya mencuat melewati border yang membulat. Radius-nya 9px, yaitu 10px milik tabel dikurangi border 1px-nya, jadi kedua lengkungan itu sejajar.

Warna dan ketebalan border per bagian

Border bisa berbeda untuk setiap bagian tabel. Selector pada thead, tfoot dan baris tertentu mengatur garis yang lebih tebal di bawah header atau di atas total:

Garis 3px menang atas garis abu-abu 1px di tempat keduanya bertemu, mengikuti aturan collapse di atas. Untuk struktur tabel lainnya (thead, tfoot, th), lihat tabel HTML.

Atribut border

Tutorial lama memakai atribut pada tag <table>:

<table border="1" cellspacing="0" cellpadding="6">

Browser masih mengikuti border="1": atribut ini menggambar border pada tabel dan setiap sel, dalam model separate, yang menghasilkan tampilan garis ganda. Ketiga atribut itu sudah usang di HTML5. Padanan CSS-nya adalah border pada sel, border-spacing (atau border-collapse: collapse) pada tabel, dan padding pada sel.

Kesalahan umum

  • Border hanya pada table. Hasilnya bingkai tanpa garis di dalamnya. Tambahkan border ke th, td.
  • Lupa border-collapse: collapse, lalu melihat garis ganda.
  • border-radius dengan border-collapse: collapse. Radius-nya diabaikan.
  • border-spacing dengan border-collapse: collapse. Spasi hanya berfungsi di model separate.
  • Border pada <tr> di model separate. Baris tidak menggambar border kecuali tabelnya memakai model collapse; atur gaya sel-selnya saja.
  • Memakai border="1" di kode baru. Masih berfungsi, tapi tidak bisa mengatur warna dan sudah usang.

Pertanyaan yang sering diajukan

Bagaimana cara menambahkan border ke tabel di HTML?

Pakai CSS pada tabel dan sel-selnya: table { border-collapse: collapse; } th, td { border: 1px solid #999; }. Border pada sel menggambar kisi-kisinya, dan border-collapse: collapse menggabungkan border yang bersebelahan menjadi garis tunggal.

Kenapa tabelku punya border ganda?

Secara default setiap sel menggambar border-nya sendiri dengan celah di antara sel (border-collapse: separate), jadi sel yang bersebelahan menampilkan dua garis. Atur border-collapse: collapse pada <table> untuk menggabungkannya menjadi satu.

Apakah atribut border pada tabel masih valid?

<table border="1"> masih menggambar border di semua browser, tapi sudah usang di HTML5 dan tidak memberimu kendali atas warna atau gayanya. Pakai property CSS border.

Bagaimana cara membulatkan sudut tabel?

border-radius tidak berpengaruh pada tabel dengan border-collapse: collapse. Pakai border-collapse: separate dengan border-spacing: 0, letakkan radius-nya di tabel, dan beri sel di sudut radius yang sama (border-start-start-radius dan sejenisnya) supaya background-nya tidak mencuat keluar dari sudut.

Bagaimana cara menghapus border dari tabel?

Tabel tidak punya border kecuali ada yang menambahkannya. Hapus atribut border dari tag <table>, atau atur border: none pada table, th, td untuk menimpa stylesheet yang menambahkannya.

Ilustrasi bahasa pemrograman di Coddy

Belajar coding dengan Coddy

Mulai