Part 1: Designing a Responsive Website Template Using HTML5 & CSS3 Media Queries


These days you've seen that users don't have enough time to spend on Desktop computers to browse the web. Users are now much more advanced and they're using large screen Mobile devices, Tablets like iPad, Galaxy Tab or Playbook and small notebooks to the surf web. That's the main reason the traditional designs are not preferred these days by designers because with fixed sizes they don't work on every device. So, it shows that we need some adaptive web designs and the layout of a website should be automatically adjustable depending on the screen size of various devices. I'll explain how to design a responsive website template using media queries with source code in my next article. But before we start a practice session it is necessary to understand the basics of "Responsive Web Design" and "Media Queries" using HTML5 and CSS3.
Let's Start...
You guys are now thinking, why am I stressing so much about "responsive web design" when we have traditional design techniques? Why do we need this and how is it different from traditional design? So many queries. Let's understand these things one by one.
What is responsive web design?
Responsive websites respond according to their environment, in other words, you don't need to design multiple sites for various devices that include Mobiles, Tablets, and Desktops. So if you use this design technique then you need to design only one site that will run on any device without any extra effort. But you need to specify how it should appear on various devices using "media queries".   
Let's have a look at this image in which we have a responsive website that adjusts itself depending on various screen sizes.
You can watch this VIDEO if you still have any doubt.
What are the benefits of responsive design?
  • It is a future-friendly way to ensure device compatibility
  • You don't need to maintain separate content for various devices
  • For various devices it adapts to the user interface
  • Distinct SEO advantages in the eyes of Google
  • You don't need to code again and again for separate websites, just code one time and you're done

When we should use it?

It depends on various conditions and you also need to consider some important points like:
  • Browser Support
  • Performance
  • Content
  • Websites or Web Apps
  • Time & Money
So far, I've used the term "media queries" many times if you have noticed, now let's understand it.

What are the media queries?

A media query is a CSS3 module that consists of a media type like print or screen, and you can also specify the content look by using various conditions such as width, height or orientation. A media query is a combination of media types and conditions in which we specify how the content will appear on a specific device.


How to use media queries?

A media type can be specified in the head of an HTML document using the "media" attribute inside the <link> element. The value of the "media" attribute defines the basis of the screen sizes of the devices on which that document will be shown. You can define the following media types in CSS2:
  • print
  • embossed
  • handheld
  • braille
  • projection
  • screen
  • speech
  • tty
  • tv
You can also specify the media type "all", which indicates that the same stylesheet applies to all media types.
  1. <!-- CSS media query on a link element -->  
  2. <link rel="stylesheet" media="(max-width: 1000px)" href="demo.css" />  
  4. <!-- CSS media query within a style sheet -->  
  5. <style>  
  6.     @media (max-width480px) {  
  7.         .showSidebar {  
  8.             displaynone;  
  9.         }  
  10.     }  
  11. </style> 
Features of media queries:
The following are the media query features which are listed in the latest W3C recommendation:
Feature Value Min/Max Description
color integer yes number of bits per color component
color-index integer yes number of entries in the color lookup table
device-aspect-ratio integer/integer yes aspect ratio
device-height length yes height of the output device
device-width length yes width of the output device
grid integer no true for a grid-based device
height length yes height of the rendering surface
monochrome integer yes number of bits per pixel in a monochrome frame buffer
resolution resolution ("dpi" or "dpcm") yes resolution
scan "progressive" or "interlaced" no scanning process of "tv" media types
width length yes width of the rendering surface
*source Wikipedia 
Stay Tuned...
I hope now you understand the basics of responsive web design and also about media queries. In my next article, I'll create a responsive web template and I'll explain it to you.