A Book Apart: Responsive Web Design By Ethan Marcotte

Posted January 18, 2012 at 10:31 AM by Ben Nadel

Tags: Books

Last weekend, I read Mobile First by Luke Wroblewski. It was a compelling read that talked about the broader benefits of designing to the constraints of a mobile experience. At the end of his book, he suggested that Ethan Marcotte's book on Responsive Web Design would be a perfect compliment to the "mobile first" approach to web development. And so, with a long train ride this past weekend, I picked up Responsive Web Design and gave it a read.


 
 
 

 
Responsive Web Design by Ethan Marcotte review by Ben Nadel.  
 
 
 

"Responsive web design," has become a pretty popular topic on Twitter and in the "blogosphere." And yet, before reading Ethan Marcotte's book, I wasn't quite sure what it was. I knew that it had to do with accommodating a variety of screen resolutions; but other than that, I wasn't sure - I've been historically slow to learn about anything that appears to be geared towards mobile development.

The biggest question in my mind, going into the book, was whether or not, "responsive web design," was supposed to be a replacement for mobile web site development. I have very mixed feelings about what I want a mobile experience to be. As the owner of an Apple iPhone, I tend to like having the "desktop" version of websites with the ability to zoom and pan the touch-screen. That said, I don't actually do a whole lot of reading on my iPhone - it's used primarily for quick look-ups, email, and apps (Twitter, Chase, NPR, This American Life, etc.).

After reading Mobile First by Luke Wroblewski, however, I definitely found myself enjoying the idea of creating websites optimized for the kinds of actions that mobile users might typically perform. That said, I have also many times found myself frustrated that I couldn't access some desktop-version piece of functionality from my mobile device (I'm looking at you, Twitter).

Ok, so to frame the rest of the conversation, let's first answer the question as to whether or not "responsive web design" is supposed to be a replacement for mobile web development. For this, I'll defer to a passage in Ethan Marcotte's book:

But most importantly, responsive web design isn't intended to serve as a replacement for mobile web sites. Responsive design is, I believe, one part design philosophy, one part front-end development strategy. And as a development strategy, it's meant to be evaluated to see if it meets the needs of the project you're working on. Perhaps there's a compelling reason to keep your site's desktop and mobile experiences separarte, or perhaps your content would be better served by a responsive approach. Only you and your users know for certain.

While I agree with mobile web designers who say that certain users of certain sites deserved different content, I think the reverse is also true: many sites can benefit from serving one document up to multiple contexts or devices. And those are perfect candidates for a responsive approach. (Page 151 of 217)

Ok, so "responsive web design" is not intended to be a replacement for mobile website development; but, it certainly can be depending on the type of website you are creating.

So, what is "responsive web design?" It's basically a combination of flexible layouts and CSS (Cascading Style Sheets) media queries that can be used to change the rendering of existing HTML based on the dimensions of the current browser window. It's not about serving up different content to different devices; rather, it's about serving up a single repository of content and then using different stylesheets for different devices and resolutions.

To me, this sounds complicated. Fortunately, Ethan Marcotte does an excellent job of breaking down the concept into simple topics and then explaining how each aspect works. As an example, he took the complexities of using EM for font-size and percentages for width / margin / padding and created a simple mathematical formula to follow:

target / context = result

He also advocates putting the above equation directly into the comments of your stylesheet:

font-size: 1.5em ; /* (24px / 16px) */
padding: 0px 4% ; /* (20px / 500px) */

This allows the developer to mentally model the display based on a more tangible pixel-based system while defining the actual formatting using flexible units of measurement.

It's tips like this that turn the big hairy topic of responsive web design into something that feels quite manageable. Even to someone like me that uses "px" to define everything!

At first, the conversation takes a "scale down" approach to understanding responsive web design - that is, how can we take our desktop version and scale it down to fit smaller screens. After the concepts of responsive web design are broken down and examined, however, Marcotte goes on to explain that a "scale up" approach is probably the most beneficial.

When using a "scale up" approach to responsive web design, we get the benefits of a "mobile first" thought process and we don't have to worry about device capabilities. If a particular device doesn't support CSS media queries - and it lacks the ability to use JavaScript work-arounds - it doesn't matter; since a mobile-first approach can work on all devices, we are guaranteed to have a usable, functional experience no matter what environment the page is being rendered in.

Responsive Web Design by Ethan Marcotte really does a great job of taking an intimidating topic and making it quite accessible. I have yet to put any of this into practice; but, I'm definitely looking forward to using responsive web design as a way to help "future proof" website development. Definitely a recommended read.




Reader Comments

Jan 18, 2012 at 10:56 AM // reply »
1 Comments

I am doing a project involving responsive design, check out getskeleton.com. So far I am enjoying working with it.


Jan 18, 2012 at 10:58 AM // reply »
11,246 Comments

@Adam,

Thanks, I'll check it out. I don't have much experience with grid systems (in general). Definitely looking forward to seeing what kind of wisdom they can bring to the table.


Jan 19, 2012 at 11:47 AM // reply »
1 Comments

Thanks for the info, definitely gonna check it out!


Jan 20, 2012 at 3:29 AM // reply »
2 Comments

Good informative stuff defined


Jan 24, 2012 at 10:34 AM // reply »
11,246 Comments

@Steve, @Janey,

Enjoy!


Jan 25, 2012 at 5:30 AM // reply »
1 Comments

Recently i am collecting materials regarding Responsive web design. I think Ethan Marcotte's book will be perfect guide for me. Thanks for the share


Mar 1, 2012 at 1:19 AM // reply »
2 Comments

Hey that was really needful. Thanks for sharing. I'll surely be looking for more.


Mar 1, 2012 at 1:19 AM // reply »
2 Comments

Hey that was really needful. Thanks for sharing. I'll surely be looking for more.


Apr 3, 2012 at 6:17 AM // reply »
1 Comments

Great article Ben - I am loving some of the new responsive sites that are coming out!


Apr 7, 2012 at 1:17 AM // reply »
1 Comments

I recently experimented with responsive web design. I love the concept, but in practical application, I don't think its necessarily always right for mobile sites. It works wonders for adapting a standard website for tablets ... but the mobile user fundamentally needs different (and less) content than the typical website visitor. For this reason, simply *displaying* the content differnetly falls short of a good user experience for mobile, in a lot of cases.


Post A Comment

Comment Etiquette: Please do not post spam. Please keep the comments on-topic. Please do not post unrelated questions or large chunks of code. And, above all, please be nice to each other - we're trying to have a good conversation here.

Please review the following issues:

Author Name:


Author Email:

Author Website:

Comment:

Supported HTML tags for formatting: <strong>bold</strong>   <em>italic</em>   <code>code</code>







  • Help Wanted - Find Your Next ColdFusion Job
Ben Nadel's Company - Epicenter Consulting Recent Blog Comments
May 24, 2013 at 5:39 PM
Ask Ben: Manually Enforcing Basic HTTP Authorization In ColdFusion
@Adam Oops! My mistake! I hadn't gotten that far in my testing - I'm still baby stepping my way through the process. ... read »
May 24, 2013 at 5:13 PM
Ask Ben: Manually Enforcing Basic HTTP Authorization In ColdFusion
Hi Jason, Thanks for checking up on that, but I still stand firm on my position. :) There are actually two listLast()'s in use, and you're right that the one using a space as a delimiter is fine. ... read »
May 24, 2013 at 4:45 PM
Ask Ben: Manually Enforcing Basic HTTP Authorization In ColdFusion
@Ben I have been lurking your site for quite some time, and haven't stepped up to comment until today. Thanks for all the great info - keep it up! @Adam I believe you are mistaken... as the commen ... read »
May 24, 2013 at 11:21 AM
Strange Interaction Between DeserializeJson(), ArrayContains(), And Database Values In ColdFusion
@WebManWalking, Ha ha, let's us never speak of justifying "##" notation again :P ... read »
May 24, 2013 at 11:18 AM
Strange Interaction Between DeserializeJson(), ArrayContains(), And Database Values In ColdFusion
@Ben, Ah, so it was indeed how I vaguely remembered it to be: A direct assignment value = users.id[ i ] causes value to retain the sticky datatype of the query column. Although unnecessary in ... read »
May 24, 2013 at 9:11 AM
Preventing Links In Standalone iPhone Applications From Opening In Mobile Safari
@Brandon, Hi, No, I haven't been able to do that. I have just kept it as it is. ... read »
May 23, 2013 at 9:52 PM
Preventing Links In Standalone iPhone Applications From Opening In Mobile Safari
@Muhmmadibn Did you figure out a solution to launching PDFs? I am running into the same issues myself. There is no way to close the PDF or go back once you launch it. Thanks in advance! ... read »
May 23, 2013 at 6:06 PM
The Girl Who Broke My Heart, And Made Me A Better Person
Good day,ladies and gentle men, my name is Dr AMADI the great spell caster in Africa, i have help so many people for different kind of problems,who say there is no solution to problems on earth, that ... read »
InVision App - Prototyping Made Beautiful With Prototyping Tools