Dan Robinson
EF5
If you have a web site with a layout width of greater than 320 pixels (basically any site designed since 1994), you might be shocked to realize that right now, your site is essentially 'broken' for half or more of your visitors. Users on iPhones and most Android phones have to scroll sideways back-and-forth constantly (or zoom in and out) to read the text and view the images. Even though I've been doing mobile versions of sites for clients for years (I work in web development), it somehow never occurred to me to think about my own sites. I came to this realization late last year as I watched my mobile traffic numbers climb over 40%. I knew I'd have to redesign, but the monumental nature of the task made me procrastinate. Finally, as I watched the mobile percentages consistently climb over 48% early this summer, I knew I couldn't put it off any longer. In August, my site's mobile viewership peaked at 70% of my traffic:
The lower left section there is all 'Samsung' devices. iPhones all show up as the same type of phone in Analytics, while the different Android variants show up separately. iOS and Android traffic is about equal. If you have Google Analytics set up on your site (it's free), you can see this data by going to Audience > Mobile > Overview.
There are two ways to tackle the problem: 1.) Make two or more versions (or style sheets) of your site, then use scripts to serve the right version for each user depending on their horizontal screen dimension; or 2.) Create a single design that fluidly 'adapts' to different screen sizes. There is no easy way to optimize for mobile. You will have to compromise no matter which way you go, and both will be a lot of work if you have a large site. Option #1 allows you to keep your nice traditional desktop layout that's worked for many years - but you'll be maintaining multiple versions of the same content, and since there are a wide variety of screen sizes, it's almost impossible to make designs that will work perfectly in every one.
I thought I'd share what implementation option I settled on and why. I chose option #2, a design that adapts 'on the fly' with text that wraps fluidly depending on screen size, and images that shrink to fill the screen on smaller widths. This allows me to maintain only one version of the site. The drawback with option 2 is that you can't use some types of content that don't work well on mobile devices, and you can't use some mobile-standard functions because they look awkward on desktops. With option #2 (adaptive designs) you will need to avoid:
- drop-down navigation menus
- small text (including in navigation and on images)
- large tables
- fixed sidebars
- large right or left-aligned images
Essentially, you need to keep in mind the phone & small tablet users, who will be using touch to navigate. Your links need to be as large as possible so the user doesn't have to pinch/zoom to click on them.
Some other tips:
- You can use the CSS width:100% and max-width properties together to make your images shrink to fill the screen on phones, yet they won't expand bigger than their actual size on a desktop with a large monitor.
- I use a single-column content cell with a range of 320 to 1000 pixels.
- You can use inline-block divs to make 300-pixel wide columns display side-by-side on desktops, which will then stack on top of each other on phones.
- Use the top navigation for only the top four or five sections (again, no drop-downs as those are not very mobile-friendly), then put more detailed navigation at the bottom (this allows phone users to click right over to another page without having to scroll all the way back to the top).
- Test on multiple devices. Desktop browsers are good for simulating various sizes of screens when the window is sized down manually, and I've found this is a good enough estimate of what a phone will show.

The lower left section there is all 'Samsung' devices. iPhones all show up as the same type of phone in Analytics, while the different Android variants show up separately. iOS and Android traffic is about equal. If you have Google Analytics set up on your site (it's free), you can see this data by going to Audience > Mobile > Overview.
There are two ways to tackle the problem: 1.) Make two or more versions (or style sheets) of your site, then use scripts to serve the right version for each user depending on their horizontal screen dimension; or 2.) Create a single design that fluidly 'adapts' to different screen sizes. There is no easy way to optimize for mobile. You will have to compromise no matter which way you go, and both will be a lot of work if you have a large site. Option #1 allows you to keep your nice traditional desktop layout that's worked for many years - but you'll be maintaining multiple versions of the same content, and since there are a wide variety of screen sizes, it's almost impossible to make designs that will work perfectly in every one.
I thought I'd share what implementation option I settled on and why. I chose option #2, a design that adapts 'on the fly' with text that wraps fluidly depending on screen size, and images that shrink to fill the screen on smaller widths. This allows me to maintain only one version of the site. The drawback with option 2 is that you can't use some types of content that don't work well on mobile devices, and you can't use some mobile-standard functions because they look awkward on desktops. With option #2 (adaptive designs) you will need to avoid:
- drop-down navigation menus
- small text (including in navigation and on images)
- large tables
- fixed sidebars
- large right or left-aligned images
Essentially, you need to keep in mind the phone & small tablet users, who will be using touch to navigate. Your links need to be as large as possible so the user doesn't have to pinch/zoom to click on them.
Some other tips:
- You can use the CSS width:100% and max-width properties together to make your images shrink to fill the screen on phones, yet they won't expand bigger than their actual size on a desktop with a large monitor.
- I use a single-column content cell with a range of 320 to 1000 pixels.
- You can use inline-block divs to make 300-pixel wide columns display side-by-side on desktops, which will then stack on top of each other on phones.
- Use the top navigation for only the top four or five sections (again, no drop-downs as those are not very mobile-friendly), then put more detailed navigation at the bottom (this allows phone users to click right over to another page without having to scroll all the way back to the top).
- Test on multiple devices. Desktop browsers are good for simulating various sizes of screens when the window is sized down manually, and I've found this is a good enough estimate of what a phone will show.
Last edited: