Based on previous work by Geoff Yuen, improved with JavaScript and semantic markup. More information on my blog
A Pen by Dudley Storey on CodePen.
Based on previous work by Geoff Yuen, improved with JavaScript and semantic markup. More information on my blog
A Pen by Dudley Storey on CodePen.
<table id="miyazaki"> | |
<caption>The Films of Hayao Miyazaki</caption> | |
<thead> | |
<tr><th>Film<th>Year<th>Honor | |
<tbody> | |
<tr> | |
<td>My Neighbor Totoro | |
<td>1988 | |
<td>Blue Ribbon Award (Special) | |
<tr> | |
<td>Princess Mononoke | |
<td>1997 | |
<td>Nebula Award (Best Script) | |
<tr> | |
<td>Spirited Away | |
<td>2001 | |
<td>Academy Award (Best Animated Feature) | |
<tr> | |
<td>Howl’s Moving Castle | |
<td>2004 | |
<td>Hollywood Film Festival (Animation OTY) | |
</table> |
var headertext = [], | |
headers = document.querySelectorAll("#miyazaki th"), | |
tablerows = document.querySelectorAll("#miyazaki th"), | |
tablebody = document.querySelector("#miyazaki tbody"); | |
for(var i = 0; i < headers.length; i++) { | |
var current = headers[i]; | |
headertext.push(current.textContent.replace(/\r?\n|\r/,"")); | |
} | |
for (var i = 0, row; row = tablebody.rows[i]; i++) { | |
for (var j = 0, col; col = row.cells[j]; j++) { | |
col.setAttribute("data-th", headertext[j]); | |
} | |
} |
table#miyazaki { | |
margin: 0 auto; | |
border-collapse: collapse; | |
font-family: Agenda-Light, sans-serif; | |
font-weight: 100; | |
background: #333; color: #fff; | |
text-rendering: optimizeLegibility; | |
border-radius: 5px; | |
} | |
table#miyazaki caption { | |
font-size: 2rem; color: #444; | |
margin: 1rem; | |
background-image: url(https://s3-us-west-2.amazonaws.com/s.cdpn.io/4273/miyazaki.png), url(https://s3-us-west-2.amazonaws.com/s.cdpn.io/4273/miyazaki2.png); | |
background-size: contain; | |
background-repeat: no-repeat; | |
background-position: center left, center right; | |
} | |
table#miyazaki thead th { font-weight: 600; } | |
table#miyazaki thead th, table#miyazaki tbody td { | |
padding: .8rem; font-size: 1.4rem; | |
} | |
table#miyazaki tbody td { | |
padding: .8rem; font-size: 1.4rem; | |
color: #444; background: #eee; | |
} | |
table#miyazaki tbody tr:not(:last-child) { | |
border-top: 1px solid #ddd; | |
border-bottom: 1px solid #ddd; | |
} | |
@media screen and (max-width: 600px) { | |
table#miyazaki caption { background-image: none; } | |
table#miyazaki thead { display: none; } | |
table#miyazaki tbody td { | |
display: block; padding: .6rem; | |
} | |
table#miyazaki tbody tr td:first-child { | |
background: #666; color: #fff; | |
} | |
table#miyazaki tbody td:before { | |
content: attr(data-th); | |
font-weight: bold; | |
display: inline-block; | |
width: 6rem; | |
} | |
} |