CSS Responsive Table without wrapper
<table class="responsive"> allows a table to full-bleed and scroll on mobile:
| Term | Description |
Link |
|---|---|---|
| Responsive design | Approach to web design that aims to make web pages render well on a variety of devices and window or screen sizes from minimum to maximum display size to ensure usability and satisfaction. |
Tables inside .breakout[-all] are responsive by default.
How it works
table.responsive,
.breakout > table:not(.does-not-exist),
.breakout-all > table:not(.does-not-exist) {
/* Center horizontally */
margin-left: 50%;
transform: translateX(-50%);
/* Let them full-bleed */
width: max-content;
min-width: auto;
max-width: 100vw;
padding-inline: 7.5%;
/* Let them scroll */
display: block;
overflow-x: auto;
-webkit-overflow-scrolling: touch; /* Smooth scroll for iOS */
th,
td {
padding-inline-start: 0;
}
}
Soft-increase selector specificity trick:
table:not(.does-not-exist) (inspired by postcss) is used here to increase specificity against selectors like &:is(table, .table)