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; | |
| } | |
| } |