<h1>Bordered table</h1>
<h2>Example 1 using display:flex;</h2>
<table class="table-border">
<tr>
<td>a11</td>
<td>a22</td>
<td>a33</td>
</tr>
<tr>
<td>b44</td>
<td>b55</td>
<td>b66</td>
</tr>
<tr>
<td>c77</td>
<td>c88</td>
<td>c99</td>
</tr>
<tr>
<td>d11</td>
<td>d22</td>
<td>d33</td>
</tr>
<tr>
<td>e44</td>
<td>e55</td>
<td>e66</td>
</tr>
<tr>
<td>f77</td>
<td>f88</td>
<td>f99</td>
</tr>
<tr>
<td>g11</td>
<td>g22</td>
<td>g33</td>
</tr>
<tr>
<td>h44</td>
<td>h55</td>
<td>h66</td>
</tr>
<tr>
<td>i77</td>
<td>i88</td>
<td>i99</td>
</tr>
<tr>
<td>j11</td>
<td>j22</td>
<td>j33</td>
</tr>
<tr>
<td>k44</td>
<td>k55</td>
<td>k66</td>
</tr>
<tr>
<td>l77</td>
<td>l88</td>
<td>l99</td>
</tr>
</table>
<h2>Example 2: using :before to add borders to normal table</h2>
<table class="table-border2">
<tr>
<td>a11</td>
<td>a22</td>
<td>a33</td>
</tr>
<tr>
<td>b44</td>
<td>b55</td>
<td>b66</td>
</tr>
<tr>
<td>c77</td>
<td>c88</td>
<td>c99</td>
</tr>
<tr>
<td>d11</td>
<td>d22</td>
<td>d33</td>
</tr>
<tr>
<td>e44</td>
<td>e55</td>
<td>e66</td>
</tr>
<tr>
<td>f77</td>
<td>f88</td>
<td>f99</td>
</tr>
<tr>
<td>g11</td>
<td>g22</td>
<td>g33</td>
</tr>
<tr>
<td>h44</td>
<td>h55</td>
<td>h66</td>
</tr>
<tr>
<td>i77</td>
<td>i88</td>
<td>i99</td>
</tr>
<tr>
<td>j11</td>
<td>j22</td>
<td>j33</td>
</tr>
<tr>
<td>k44</td>
<td>k55</td>
<td>k66</td>
</tr>
<tr>
<td>l77</td>
<td>l88</td>
<td>l99</td>
</tr>
</table>
/* Example 1 */
.table-border {
border: 1px solid red;
width: 50%;
min-width: 200px;
padding: 5px 5px 10px;
display: flex;
flex-wrap: wrap;
}
.table-border tbody {
display: flex;
flex-wrap: wrap;
flex: 1 0 100%;
width: 100%;
}
.table-border tr {
flex: 1 0 100%;
width: 100%;
display: flex;
}
.table-border td {
border: 1px solid #000;
border-bottom: none;
border-top: none;
padding: 10px;
flex: 1 0 0%;
width: 33.3%;
margin: 0 5px;
}
.table-border tr:nth-child(3n + 1) td {
border-top: 1px solid #000;
margin-top: 10px;
}
.table-border tr:nth-child(3n + 3) td {
border-bottom: 1px solid #000;
}
/* style blocks */
.table-border tr:nth-child(1) td:first-child,
.table-border tr:nth-child(2) td:first-child,
.table-border tr:nth-child(3) td:first-child {
border-color: red;
background: orange;
}
.table-border tr:nth-child(1) td:nth-child(2),
.table-border tr:nth-child(2) td:nth-child(2),
.table-border tr:nth-child(3) td:nth-child(2) {
border-color: cyan;
background: pink;
}
.table-border tr:nth-child(1) td:nth-child(3),
.table-border tr:nth-child(2) td:nth-child(3),
.table-border tr:nth-child(3) td:nth-child(3) {
border-color: teal;
background: yellow;
}
/* Second row of 3*/
.table-border tr:nth-child(4) td:first-child,
.table-border tr:nth-child(5) td:first-child,
.table-border tr:nth-child(6) td:first-child {
border-color: blue;
background: green;
}
.table-border tr:nth-child(4) td:nth-child(2),
.table-border tr:nth-child(5) td:nth-child(2),
.table-border tr:nth-child(6) td:nth-child(2) {
border-color: orange;
background: lime;
}
.table-border tr:nth-child(4) td:nth-child(3),
.table-border tr:nth-child(5) td:nth-child(3),
.table-border tr:nth-child(6) td:nth-child(3) {
border-color: black;
background: gray;
}
/* 3rd row */
.table-border tr:nth-child(7) td:first-child,
.table-border tr:nth-child(8) td:first-child,
.table-border tr:nth-child(9) td:first-child {
border-color: red;
background: orange;
}
.table-border tr:nth-child(7) td:nth-child(2),
.table-border tr:nth-child(8) td:nth-child(2),
.table-border tr:nth-child(9) td:nth-child(2) {
border-color: cyan;
background: pink;
}
.table-border tr:nth-child(7) td:nth-child(3),
.table-border tr:nth-child(8) td:nth-child(3),
.table-border tr:nth-child(9) td:nth-child(3) {
border-color: teal;
background: yellow;
}
/* last row of 3 */
.table-border tr:nth-child(10) td:first-child,
.table-border tr:nth-child(11) td:first-child,
.table-border tr:nth-child(12) td:first-child {
border-color: blue;
background: green;
}
.table-border tr:nth-child(10) td:nth-child(2),
.table-border tr:nth-child(11) td:nth-child(2),
.table-border tr:nth-child(12) td:nth-child(2) {
border-color: orange;
background: lime;
}
.table-border tr:nth-child(10) td:nth-child(3),
.table-border tr:nth-child(11) td:nth-child(3),
.table-border tr:nth-child(12) td:nth-child(3) {
border-color: black;
background: gray;
}
/* Example 2 */
.table-border2 {
border: 1px solid red;
width: 50%;
min-width: 200px;
padding: 5px;
border-spacing: 5px;
}
.table-border2 td {
border: 1px solid #000;
border-bottom: none;
border-top: none;
padding: 10px 10px 5px;
position: relative;
}
.table-border2 tr:nth-child(3n + 1) td {
border-top: 1px solid #000;
}
.table-border2 tr:nth-child(3n + 3) td {
border-bottom: 1px solid #000;
padding-bottom: 10px;
}
.table-border2 td:before {
content: "";
position: absolute;
z-index: -1;
left: -1px;
right: -1px;
top: 0;
bottom: -5px;
border-left: 1px solid #000;
border-right: 1px solid #000;
border-color: inherit;
background: inherit;
}
.table-border2 tr:nth-child(3n + 3) td:before {
bottom: 0;
}
/*now color each row differently*/
.table-border2 tr:nth-child(1) td:first-child,
.table-border2 tr:nth-child(2) td:first-child,
.table-border2 tr:nth-child(3) td:first-child {
border-color: red;
background: orange;
}
.table-border2 tr:nth-child(1) td:nth-child(2),
.table-border2 tr:nth-child(2) td:nth-child(2),
.table-border2 tr:nth-child(3) td:nth-child(2) {
border-color: cyan;
background: pink;
}
.table-border2 tr:nth-child(1) td:nth-child(3),
.table-border2 tr:nth-child(2) td:nth-child(3),
.table-border2 tr:nth-child(3) td:nth-child(3) {
border-color: teal;
background: yellow;
}
/* Second row of 3*/
.table-border2 tr:nth-child(4) td:first-child,
.table-border2 tr:nth-child(5) td:first-child,
.table-border2 tr:nth-child(6) td:first-child {
border-color: blue;
background: green;
}
.table-border2 tr:nth-child(4) td:nth-child(2),
.table-border2 tr:nth-child(5) td:nth-child(2),
.table-border2 tr:nth-child(6) td:nth-child(2) {
border-color: orange;
background: lime;
}
.table-border2 tr:nth-child(4) td:nth-child(3),
.table-border2 tr:nth-child(5) td:nth-child(3),
.table-border2 tr:nth-child(6) td:nth-child(3) {
border-color: black;
background: gray;
}
/* 3rd row */
.table-border2 tr:nth-child(7) td:first-child,
.table-border2 tr:nth-child(8) td:first-child,
.table-border2 tr:nth-child(9) td:first-child {
border-color: red;
background: orange;
}
.table-border2 tr:nth-child(7) td:nth-child(2),
.table-border2 tr:nth-child(8) td:nth-child(2),
.table-border2 tr:nth-child(9) td:nth-child(2) {
border-color: cyan;
background: pink;
}
.table-border2 tr:nth-child(7) td:nth-child(3),
.table-border2 tr:nth-child(8) td:nth-child(3),
.table-border2 tr:nth-child(9) td:nth-child(3) {
border-color: teal;
background: yellow;
}
/* last row of 3 */
.table-border2 tr:nth-child(10) td:first-child,
.table-border2 tr:nth-child(11) td:first-child,
.table-border2 tr:nth-child(12) td:first-child {
border-color: blue;
background: green;
}
.table-border2 tr:nth-child(10) td:nth-child(2),
.table-border2 tr:nth-child(11) td:nth-child(2),
.table-border2 tr:nth-child(12) td:nth-child(2) {
border-color: orange;
background: lime;
}
.table-border2 tr:nth-child(10) td:nth-child(3),
.table-border2 tr:nth-child(11) td:nth-child(3),
.table-border2 tr:nth-child(12) td:nth-child(3) {
border-color: black;
background: gray;
}
This Pen doesn't use any external CSS resources.
This Pen doesn't use any external JavaScript resources.