robinadr

Tagged responsive

I spent some time making my navigation responsive, after some plugins didn’t really work for me. It turns out it’s pretty straightforward to code your own responsive navigation using jQuery.

With most of the unrelated HTML and code for my grid system stripped out, this is what the code for the navigation itself looks like:

This is what it looks like, first on big screens and then on mobile screens:

Navigation on bigger screens

Navigation on mobile screens

I stole the idea for using <span>s for the navigation icon from Bootstrap. It’s pretty straightforward to style:

Then this is the JavaScript for all of this:

Not only does this code handle the toggling of the navigation for mobile browsers, it also watches the size of the window. If someone resizes their window down to the size needed to trigger the bar or back to full size, it will handle it gracefully.

Quick and easy.

When I started to put my redesign together, I spent a lot of time wading through the CSS grid systems out there. Between Bootstrap, Responsive Grid System, Zurb, and others, I couldn’t find a solution that I liked. All either used non-semantic classes or had grids that I found overly complex. In the end, I found a guide to making your own grid system and put together my own responsive grid.

The code is pretty simple, and you can easily customize it and put it at the top of your CSS file:

Another benefit of rolling your own grid system is becoming very familiar with how responsive designs work (with @media queries) and how grid systems work. To use the above grid system, it’s pretty easy:

A note about the instructions in that guide: it uses rem units to set the grid up, but that unit isn’t supported in IE 8. In my example above, I ended up switching to em instead.