Responsive Tabs Demo
In this example, the media query breakpoint is set 768px.
Resize window below 768px and controls will be an accordion. Resize to 768px or above and they will appear as regular tabs.
- Progressive enhancement – uses semantic heading/content markup – tabs and accordion are created entirely with jQuery
- Uses Aria attributes and roles to aid screen reader accessibility
- Tabs and their content are fully accessible via keyboard
- Supports multiple sets of tabs on same page
How to use
- Include jQuery (minimum version 1.5.1 and above)
- Include responsiveTabs.js
- Include the css from responsive-tabs.css, and adjust the media query breakpoint as desired
- Markup your tabs regions as follows:
<div class="tabs"> <h2>[...]</h2> <div>[...]</div> <h2>[...]</h2> <div>[...]</div> </div>
The headings can be any level, from h1 to h6. Note that the first (leftmost) tab panel will be open by default in ‘tab view’, while all panels will be closed in ‘accordion view’ (ie. below the specified breakpoint).
If you want a specific tab other than the first to be open by default then add the class ‘responsive-tabs__panel–active’ onto the panel, eg:
<div class="tabs"> <h2>[...]</h2> <div>[...]</div> <h2>[...]</h2> <div class="responsive-tabs__panel--active">[...]</div> </div>
- On document ready, call the function responsiveTabs()
responsiveTabs.js is available for download on Github