Planning and creating your menu for mobiles will perhaps be the trickiest aspect of building a responsive layout. It is a juggling act between both readability and functionality.
In years gone by, it was about converting your navigation into a
<select> drop-down menu, now, its all about the “three line” (or hamburger menu), toggle menu, drawer-style navs and animated side panels.
Hopefully the solutions we have for you below will help get you on your way.
You might also like to check out this related article: 15 Responsive Navigation jQuery Plugins →
Basic Responsive “Three Line” Menu (CSS & jQuery)
This tutorial shows you how to, with a relatively short amount of code, progressively enhance a responsive site and build a “three line” responsive menu without adding additional markup to the page. All additional markup will be included dynamically using jQuery.
Responsive Multi-Level Navigation (CSS & jQuery)
With this approach to responsive navigation, you’re shown how to accommodate large, multi-level menus using media queries and jQuery, whilst trying to keep the markup as simple as possible and any external resources kept a minimum.
The aim is to build, on larger screens, a horizontal drop-down menu, with up to two levels of sub-menus that appear when the parent element is hovered over. And on smaller screens, a menu button that will display the menu vertically, displaying sub-menus when the parent element is clicked or touched.
CSS: Responsive Navigation Menu (CSS-only)
Smooth Responsive Dropdown Menu – Top Drawer (CSS & jQuery)
Modernizr will detect whether the user's device is capable of CSS transforms, if it isn't the menu will simply show and hide the menu after the button is pressed.
Simple Responsive Navigation (CSS & jQuery)
With this tutorial, you will be shown a very simple approach for building a responsive menu from the ground up using CSS3 media queries and a little jQuery to display the menu on a smaller mobile screen.
Mobile Drawer-Style Menu (jQuery Plugin)
This jQuery Mobile Menu Plugin creates a drawer-style navigation on your mobile site, as seen on iOS.
MeanMenu – A Media Query Independent Navigation (jQuery Plugin)
CSS3 Responsive Menu (CSS-only)
This tutorial offers a step by step instructions to building a responsive navigation menu that adapts to varying screen sizes (in a block-style), using media queries.
Simple & Responsive Mobile First Navigation (CSS-only)
In this tutorial you will learn how to build a simple and straight-forward mobile layout and navigation, then progressively enhance the design for larger screens, using media queries that detect steadily increasing screen sizes, adding style and features as you go.
‘Stacking’ Responsive Menu (Proof of Concept)
Please note that this solution is a proof of concept and should not be used in production. Having said that, go ahead and view the demo (link below) and resize your window and you will see the amazing ‘stacking effect’ of each of the pages sections.
Progressive And Responsive Navigation Tutorial
This tutorial, from Smashing Magazine, takes you through the steps for coding your navigation using a little forethought and considering the principles of progressive enhancement from the beginning and applying some responsive practices at the end, allowing your navigation to easily accommodate less-capable browsers and modern browsers in both desktop and mobile environments.
Responsive Navigation Menu Tutorial
With this tutorial you will learn how to code a simple and effective responsive navigation menu, with a grid layout, that you will be able to easily modify and reuse in your own projects.
TinyNav.js jQuery Plugin
TinyNav.js is a tiny jQuery plugin (362 bytes minified and gzipped) that converts
<ol> navigations to a select dropdowns for small screens. It also automatically selects the current page and adds
selected="selected" for that item.
Responsive Drop Down Navigation Menu Tutorial
HorizontalNav jQuery Plugin
HorizontalNav is a jQuery plugin that spans a horizontal navigation to fit the full width of it's container. It comes with an option to make it responsive, allowing the navigation to auto-adjust when the window is resized.
<select> drop-down menu. Used together with media queries it helps you to create a space saving, responsive navigation for small screen devices.
Convert a Menu to a Dropdown for Small Screens Tutorial
Simple Responsive Menu
This tutorial takes a typical desktop menu and shows you how to, using Modernizr, jQuery and media queries, convert it to a small menu button for smaller screens that only appears when pressed, and pressing it again will retract it.
Mobile Menu jQuery Plugin
Mobile Menu is a jQuery plugin that turns your site's navigation into a dropdown (
<select>) when your browser is at mobile widths. It comes with a handful of options, including the really useful "combine", that allows you to convert multiple navigation lists into a single dropdown.
Further Reading & Resources…
- Responsive Navigation Patterns →
Top and left navigations are typical on large screens, but lack of screen real estate on small screens makes for an interesting challenge. This detailed article, from Brad Frost, takes a look at the various ways of handling navigation for small screen sizes and discusses how mobile navigation must strike a balance between quick access to a site’s information and unobtrusiveness.
- Scalable Navigation Patterns in Responsive Web Design →
Here are some of the lessons learned by Michael Mesker, from palantir.net, while working on a recent real-life, large-scale project. Specifically, this post focuses on how they chose to deal with deep navigation in the landscape of a templated environment.
- 7 Responsive Navigation Patterns →
- 10 Pure CSS Responsive Navigation Code Snippets
- How to Create Responsive Off-Screen Menus with CSS3
- 20 Free Responsive Navigation & Menu jQuery Plugins
- 20 Examples of Fullscreen Responsive Menus
- How to Create a Full Width Responsive Tiled Menu with CSS
- Responsive HTML Table Techniques & Examples
- 20 Responsive & Lightweight CSS Frameworks
- 10 Free Responsive Pricing Table HTML & CSS Snippets