Definition
The border-collapse
CSS property determines whether a table’s borders are separated or collapsed. In a separated model, each cell has its individual borders, while in a collapsed model, adjacent table cells share borders.
For example, to set a table’s borders to collapse, use border-collapse: collapse;
. This can make your tables look cleaner and more compact.
Syntax
table {
border-collapse: collapse;
}
Values
-
separate
: draw borders around each cell with spacing (default). -
collapse
: merge adjacent cell borders into a single line.
Practical Examples
table.schedule {
width: 100%;
border-collapse: collapse;
}
Collapsed tables create a single grid line between cells, matching spreadsheet aesthetics.
HTML
border-collapse: separate
Team | Points |
---|---|
North | 42 |
South | 38 |
border-collapse: collapse
Team | Points |
---|---|
North | 42 |
South | 38 |
Code
<div class="grid gap-4 sm:grid-cols-2">
<div class="rounded-xl border border-slate-200 bg-white p-4 shadow-sm">
<p class="text-xs font-semibold uppercase tracking-wide text-slate-500">border-collapse: separate</p>
<table class="w-full text-left text-sm" style="border-collapse: separate; border-spacing: 0.5rem;">
<thead class="text-xs uppercase text-slate-500"><tr><th class="font-semibold">Team</th><th class="font-semibold">Points</th></tr></thead>
<tbody class="text-slate-700">
<tr class="bg-slate-100"><td class="rounded-lg px-3 py-2">North</td><td class="rounded-lg px-3 py-2 text-right">42</td></tr>
<tr class="bg-slate-50"><td class="rounded-lg px-3 py-2">South</td><td class="rounded-lg px-3 py-2 text-right">38</td></tr>
</tbody>
</table>
</div>
<div class="rounded-xl border border-slate-200 bg-white p-4 shadow-sm">
<p class="text-xs font-semibold uppercase tracking-wide text-slate-500">border-collapse: collapse</p>
<table class="w-full text-left text-sm" style="border-collapse: collapse;">
<thead class="bg-slate-100 text-xs uppercase text-slate-500"><tr><th class="border border-slate-200 px-3 py-2 font-semibold">Team</th><th class="border border-slate-200 px-3 py-2 font-semibold">Points</th></tr></thead>
<tbody class="text-slate-700">
<tr><td class="border border-slate-200 px-3 py-2">North</td><td class="border border-slate-200 px-3 py-2 text-right">42</td></tr>
<tr class="bg-slate-50"><td class="border border-slate-200 px-3 py-2">South</td><td class="border border-slate-200 px-3 py-2 text-right">38</td></tr>
</tbody>
</table>
</div>
</div>
Tips & Best Practices
- Use
collapse
for dense data tables; pair withborder-bottom
accent rows for readability. - When keeping
separate
, leverageborder-spacing
for controlled gaps between cells. - Remember that
border-radius
on table elements behaves differently when collapsed—apply to individual cells as needed.
Accessibility & UX Notes
Ensure table headers remain visually distinct regardless of collapse mode; use <th>
and scope attributes for semantics.
Browser Support
Fully supported in major browsers. Some legacy browsers handle collapsed border radii inconsistently.
Related
-
border-spacing
to adjust gaps when usingseparate
mode. -
table-layout
for consistent column sizing. -
border
longhands to style individual cell edges.