A Pen by CSS-Tricks on CodePen.
Created
September 30, 2018 14:24
-
-
Save Nazarii77/439a37080ce16eed74429cbe9d0939b6 to your computer and use it in GitHub Desktop.
Responsive Table Demo
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<table role="table"> | |
<thead role="rowgroup"> | |
<tr role="row"> | |
<th role="columnheader">First Name</th> | |
<th role="columnheader">Last Name</th> | |
<th role="columnheader">Job Title</th> | |
<th role="columnheader">Favorite Color</th> | |
<th role="columnheader">Wars or Trek?</th> | |
<th role="columnheader">Secret Alias</th> | |
<th role="columnheader">Date of Birth</th> | |
<th role="columnheader">Dream Vacation City</th> | |
<th role="columnheader">GPA</th> | |
<th role="columnheader">Arbitrary Data</th> | |
</tr> | |
</thead> | |
<tbody role="rowgroup"> | |
<tr role="row"> | |
<td role="cell">James</td> | |
<td role="cell">Matman</td> | |
<td role="cell">Chief Sandwich Eater</td> | |
<td role="cell">Lettuce Green</td> | |
<td role="cell">Trek</td> | |
<td role="cell">Digby Green</td> | |
<td role="cell">January 13, 1979</td> | |
<td role="cell">Gotham City</td> | |
<td role="cell">3.1</td> | |
<td role="cell">RBX-12</td> | |
</tr> | |
<tr role="row"> | |
<td role="cell">The</td> | |
<td role="cell">Tick</td> | |
<td role="cell">Crimefighter Sorta</td> | |
<td role="cell">Blue</td> | |
<td role="cell">Wars</td> | |
<td role="cell">John Smith</td> | |
<td role="cell">July 19, 1968</td> | |
<td role="cell">Athens</td> | |
<td role="cell">N/A</td> | |
<td role="cell">Edlund, Ben (July 1996).</td> | |
</tr> | |
<tr role="row"> | |
<td role="cell">Jokey</td> | |
<td role="cell">Smurf</td> | |
<td role="cell">Giving Exploding Presents</td> | |
<td role="cell">Smurflow</td> | |
<td role="cell">Smurf</td> | |
<td role="cell">Smurflane Smurfmutt</td> | |
<td role="cell">Smurfuary Smurfteenth, 1945</td> | |
<td role="cell">New Smurf City</td> | |
<td role="cell">4.Smurf</td> | |
<td role="cell">One</td> | |
</tr> | |
<tr role="row"> | |
<td role="cell">Cindy</td> | |
<td role="cell">Beyler</td> | |
<td role="cell">Sales Representative</td> | |
<td role="cell">Red</td> | |
<td role="cell">Wars</td> | |
<td role="cell">Lori Quivey</td> | |
<td role="cell">July 5, 1956</td> | |
<td role="cell">Paris</td> | |
<td role="cell">3.4</td> | |
<td role="cell">3451</td> | |
</tr> | |
<tr role="row"> | |
<td role="cell">Captain</td> | |
<td role="cell">Cool</td> | |
<td role="cell">Tree Crusher</td> | |
<td role="cell">Blue</td> | |
<td role="cell">Wars</td> | |
<td role="cell">Steve 42nd</td> | |
<td role="cell">December 13, 1982</td> | |
<td role="cell">Las Vegas</td> | |
<td role="cell">1.9</td> | |
<td role="cell">Under the couch</td> | |
</tr> | |
</tbody> | |
</table> |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/* | |
Max width before this PARTICULAR table gets nasty. This query will take effect for any screen smaller than 760px and also iPads specifically. | |
*/ | |
@media | |
only screen | |
and (max-width: 760px), (min-device-width: 768px) | |
and (max-device-width: 1024px) { | |
/* Force table to not be like tables anymore */ | |
table, thead, tbody, th, td, tr { | |
display: block; | |
} | |
/* Hide table headers (but not display: none;, for accessibility) */ | |
thead tr { | |
position: absolute; | |
top: -9999px; | |
left: -9999px; | |
} | |
tr { | |
margin: 0 0 1rem 0; | |
} | |
tr:nth-child(odd) { | |
background: #ccc; | |
} | |
td { | |
/* Behave like a "row" */ | |
border: none; | |
border-bottom: 1px solid #eee; | |
position: relative; | |
padding-left: 50%; | |
} | |
td:before { | |
/* Now like a table header */ | |
position: absolute; | |
/* Top/left values mimic padding */ | |
top: 0; | |
left: 6px; | |
width: 45%; | |
padding-right: 10px; | |
white-space: nowrap; | |
} | |
/* | |
Label the data | |
You could also use a data-* attribute and content for this. That way "bloats" the HTML, this way means you need to keep HTML and CSS in sync. Lea Verou has a clever way to handle with text-shadow. | |
*/ | |
td:nth-of-type(1):before { content: "First Name"; } | |
td:nth-of-type(2):before { content: "Last Name"; } | |
td:nth-of-type(3):before { content: "Job Title"; } | |
td:nth-of-type(4):before { content: "Favorite Color"; } | |
td:nth-of-type(5):before { content: "Wars of Trek?"; } | |
td:nth-of-type(6):before { content: "Secret Alias"; } | |
td:nth-of-type(7):before { content: "Date of Birth"; } | |
td:nth-of-type(8):before { content: "Dream Vacation City"; } | |
td:nth-of-type(9):before { content: "GPA"; } | |
td:nth-of-type(10):before { content: "Arbitrary Data"; } | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Responsive table for desktop and mobile