How to Make Responsive Tables and Images?
When a table contains many columns, we need a y-axis scroll bar for users to see all the information in the table. Or, when an image contains a lot of information that we want to display for users to see, we a y-axis scroll bar. The responsive image is often used when we want to use a long math formula.
In both cases, we can create a responsive table or image with a y-axis scroll bar.
Here is how I do it:
- Wrap a table or image in a div tag and set its width to 100% and overflow to scroll.
- Set the targe table or image to a width that can comfortably display all information.
- If doing the above is not working, the y-axis scroll bar does not show up, try add a max-width with the same width with "width", because some website themes or CSS frameworks set max-width to 100% to all images.
Responsive Design
The responsive functionalilty is achieved by seting the width for a table or an image to a fixed size (not a percentage) so that a y-axis scroll bar shows up when a user view the table or the image with a device of a relatively small screen, while the scroll bar is not present otherwise.
Responsive Table
| XXXXX | YYYYY | ZZZZZ | XXXXX | YYYYY | ZZZZZ | XXXXX | YYYYY | ZZZZZ | XXXXX | YYYYY | ZZZZZ | XXXXX | YYYYY | ZZZZZ | XXXXX | YYYYY | ZZZZZ | XXXXX | YYYYY | ZZZZZ | XXXXX | YYYYY | ZZZZZ |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 12345 | 12345 | 12345 | 12345 | 12345 | 12345 | 12345 | 12345 | 12345 | 12345 | 12345 | 12345 | 12345 | 12345 | 12345 | 12345 | 12345 | 12345 | 12345 | 12345 | 12345 | 12345 | 12345 | 12345 |
| 67890 | 67890 | 67890 | 67890 | 67890 | 67890 | 67890 | 67890 | 67890 | 67890 | 67890 | 67890 | 67890 | 67890 | 67890 | 67890 | 67890 | 67890 | 67890 | 67890 | 67890 | 67890 | 67890 | 67890 |
Responsive Image
Sample code
<div style="overflow: scroll; width: 100%;">
<table style="width: 200%;">
<tbody><tr>
<th>XXXXX</th>
<th>YYYYY</th>
<th>ZZZZZ</th>
<th>XXXXX</th>
<th>YYYYY</th>
<th>ZZZZZ</th>
<th>XXXXX</th>
<th>YYYYY</th>
<th>ZZZZZ</th>
<th>XXXXX</th>
<th>YYYYY</th>
<th>ZZZZZ</th>
<th>XXXXX</th>
<th>YYYYY</th>
<th>ZZZZZ</th>
<th>XXXXX</th>
<th>YYYYY</th>
<th>ZZZZZ</th>
<th>XXXXX</th>
<th>YYYYY</th>
<th>ZZZZZ</th>
<th>XXXXX</th>
<th>YYYYY</th>
<th>ZZZZZ</th>
</tr>
<tr>
<td>12345</td>
<td>12345</td>
<td>12345</td>
<td>12345</td>
<td>12345</td>
<td>12345</td>
<td>12345</td>
<td>12345</td>
<td>12345</td>
<td>12345</td>
<td>12345</td>
<td>12345</td>
<td>12345</td>
<td>12345</td>
<td>12345</td>
<td>12345</td>
<td>12345</td>
<td>12345</td>
<td>12345</td>
<td>12345</td>
<td>12345</td>
<td>12345</td>
<td>12345</td>
<td>12345</td>
</tr>
<tr>
<td>67890</td>
<td>67890</td>
<td>67890</td>
<td>67890</td>
<td>67890</td>
<td>67890</td>
<td>67890</td>
<td>67890</td>
<td>67890</td>
<td>67890</td>
<td>67890</td>
<td>67890</td>
<td>67890</td>
<td>67890</td>
<td>67890</td>
<td>67890</td>
<td>67890</td>
<td>67890</td>
<td>67890</td>
<td>67890</td>
<td>67890</td>
<td>67890</td>
<td>67890</td>
<td>67890</td>
</tr>
</tbody></table>
</div>
<div style="overflow: scroll; width: 100%;">
<img height="66" src="https://blogger.googleusercontent.com/img/a/AVvXsEiRecakAxMGMLGgQIdH8UeNjQbUrCSfpqWi2wdjkcJCNPk07wKdGvxoPR_7mUfi9RjPgr05paoXAjOW2C9l3_9aVBDmpmjCGVdfObFoNsxmEbU-UWWASsD2ONzkdZQ-FXxF-fc4CTJSbsfRaWc3OoVlw2lHt_fRzPibQl0YW_stU5UNIoDIrsSw4_lL=s320" width="150%" />
</div>
Now If you want to maka a table that with bigger screen, there is no scroll, and there is one if sreen sizes are small as being responsive to screen size, you can set the table or image width with pixels not a percentage with min-width CSS property.
Adjust browser or use different devices to see effect.
| XXXXX | YYYYY | ZZZZZ | XXXXX | YYYYY | ZZZZZ | XXXXX | YYYYY | ZZZZZ | XXXXX | YYYYY | ZZZZZ | XXXXX | YYYYY | ZZZZZ | XXXXX | YYYYY | ZZZZZ | XXXXX | YYYYY | ZZZZZ | XXXXX | YYYYY | ZZZZZ |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 12345 | 12345 | 12345 | 12345 | 12345 | 12345 | 12345 | 12345 | 12345 | 12345 | 12345 | 12345 | 12345 | 12345 | 12345 | 12345 | 12345 | 12345 | 12345 | 12345 | 12345 | 12345 | 12345 | 12345 |
| 67890 | 67890 | 67890 | 67890 | 67890 | 67890 | 67890 | 67890 | 67890 | 67890 | 67890 | 67890 | 67890 | 67890 | 67890 | 67890 | 67890 | 67890 | 67890 | 67890 | 67890 | 67890 | 67890 | 67890 |
Responsive Image
<div style="overflow: scroll;">
<table style="min-width: 700px;">
<tbody><tr>
<th>XXXXX</th>
<th>YYYYY</th>
<th>ZZZZZ</th>
<th>XXXXX</th>
<th>YYYYY</th>
<th>ZZZZZ</th>
<th>XXXXX</th>
<th>YYYYY</th>
<th>ZZZZZ</th>
<th>XXXXX</th>
<th>YYYYY</th>
<th>ZZZZZ</th>
<th>XXXXX</th>
<th>YYYYY</th>
<th>ZZZZZ</th>
<th>XXXXX</th>
<th>YYYYY</th>
<th>ZZZZZ</th>
<th>XXXXX</th>
<th>YYYYY</th>
<th>ZZZZZ</th>
<th>XXXXX</th>
<th>YYYYY</th>
<th>ZZZZZ</th>
</tr>
<tr>
<td>12345</td>
<td>12345</td>
<td>12345</td>
<td>12345</td>
<td>12345</td>
<td>12345</td>
<td>12345</td>
<td>12345</td>
<td>12345</td>
<td>12345</td>
<td>12345</td>
<td>12345</td>
<td>12345</td>
<td>12345</td>
<td>12345</td>
<td>12345</td>
<td>12345</td>
<td>12345</td>
<td>12345</td>
<td>12345</td>
<td>12345</td>
<td>12345</td>
<td>12345</td>
<td>12345</td>
</tr>
<tr>
<td>67890</td>
<td>67890</td>
<td>67890</td>
<td>67890</td>
<td>67890</td>
<td>67890</td>
<td>67890</td>
<td>67890</td>
<td>67890</td>
<td>67890</td>
<td>67890</td>
<td>67890</td>
<td>67890</td>
<td>67890</td>
<td>67890</td>
<td>67890</td>
<td>67890</td>
<td>67890</td>
<td>67890</td>
<td>67890</td>
<td>67890</td>
<td>67890</td>
<td>67890</td>
<td>67890</td>
</tr>
</tbody></table>
</div>
<div style="overflow: scroll;">
<div style="min-width: 700px;">
<img src="https://blogger.googleusercontent.com/img/a/AVvXsEiRecakAxMGMLGgQIdH8UeNjQbUrCSfpqWi2wdjkcJCNPk07wKdGvxoPR_7mUfi9RjPgr05paoXAjOW2C9l3_9aVBDmpmjCGVdfObFoNsxmEbU-UWWASsD2ONzkdZQ-FXxF-fc4CTJSbsfRaWc3OoVlw2lHt_fRzPibQl0YW_stU5UNIoDIrsSw4_lL=s320" style="width: 1400px;" />
</div>
</div>
Comments
Post a Comment