Simple jQuery & CSS3 Based Responsive Table Plugin
| File Size: | 3.36 KB |
|---|---|
| Views Total: | 1579 |
| Last Update: | |
| Publish Date: | |
| Official Website: | Go to website |
| License: | MIT |
A jQuery plugin used to make your normal tables more human-readable on small screen devices. It makes use of CSS3 media queries to convert a wide table into a 2-column value format in mobile view.
How to use it:
1. Add the following CSS3 media query rules into your CSS file.
@media only screen and (max-width: 915px), (min-device-width: 768px) and (max-device-width: 1024px)
{
/* Force table to not be like tables anymore */
table.resp_table, table.resp_table thead, table.resp_table tbody, table.resp_table th, table.resp_table td, table.resp_table tr {
display: block;
}
/* Hide table headers (but not display: none;, for accessibility) */
table.resp_table thead tr {
position: absolute;
top: -9999px;
left: -9999px;
}
table.resp_table tr { border: 1px solid #ccc; }
table.resp_table tr td {
/* Behave like a "row" */
border: none;
border-bottom: 1px solid #eee;
position: relative;
padding-left: 50%;
width: calc(55% - 30px) !important;
text-align: left !important;
}
table.resp_table tr td:before {
/* Now like a table header */
position: absolute;
/* Top/left values mimic padding */
top: 12px;
left: 6px;
width: 45%;
padding-right: 10px;
white-space: nowrap;
text-align: left !important;
font-weight: bold;
content: attr(data-th) ": ";
}
}
2. Add CSS class 'resp_table' to your table. And then add data-th to each td of the table.
<table class="resp_table demo">
<thead>
<tr>
<th>Name</th>
<th>Address</th>
<th>Email</th>
<th>Status</th>
</tr>
</thead>
<tbody>
<tr>
<td data-th="Name">Lorem ipsum</td>
<td data-th="Address">Donec volutpat eget tortor sit amet interdum</td>
<td data-th="Email">[email protected]</td>
<td data-th="Status">For Sale</td>
</tr>
<tr>
<td data-th="Name">Lorem ipsum</td>
<td data-th="Address">Donec volutpat eget tortor sit amet interdum</td>
<td data-th="Email">[email protected]</td>
<td data-th="Status">For Sale</td>
</tr>
<tr>
<td data-th="Name">Lorem ipsum</td>
<td data-th="Address">Donec volutpat eget tortor sit amet interdum</td>
<td data-th="Email">[email protected]</td>
<td data-th="Status">For Sale</td>
</tr>
<tr>
<td data-th="Name">Lorem ipsum</td>
<td data-th="Address">Donec volutpat eget tortor sit amet interdum</td>
<td data-th="Email">[email protected]</td>
<td data-th="Status">For Sale</td>
</tr>
</tbody>
</table>
3. Load the needed jQuery library at the end of your web page.
<script src="//ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js"></script>
4. The core JS function for the responsive table.
(function ( $ ) {
$.fn.responsiveTables = function( options ) {
var settings = $.extend({
}, options ),
wrapper = $(this),
thead_th = [],
count = 0;
wrapper.each(function(){
$(this).find('thead th').each(function(){
thead_th.push( $(this).html() );
});
$(this).find('tr').each(function(){
count = 0;
$(this).find('td').each(function(){
$(this).attr('data-th', thead_th[count]);
count = count + 1;
});
});
});
}
}( jQuery ));
5. Call the function on the table and done.
$('.demo').responsiveTables();
This awesome jQuery plugin is developed by mcnamee. For more Advanced Usages, please check the demo page or visit the official website.











