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.
| Nilai | Hasil |
|---|---|
separate (default) | Setiap sel punya border-nya sendiri, dengan celah di antara sel yang diatur oleh border-spacing |
collapse | Sel 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 keth, td. - Lupa
border-collapse: collapse, lalu melihat garis ganda. border-radiusdenganborder-collapse: collapse. Radius-nya diabaikan.border-spacingdenganborder-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.