How to build standards-compliant responsive design using @viewport

Wdd Logo.
August 13, 2013
How to build standards-compliant responsive design using @viewport.

thumbnailOne of the key concepts in any responsive design is the change of viewport size. That’s because mobile viewports vary greatly from desktop viewports. To control the viewport size we traditionally use the viewport meta tag.

However, the viewport meta tag, like all the worst browser developments of the last forever, isn’t W3C valid. It was originally introduced by Apple in Safari and has since been adopted by other browsers. This results in an inconsistent implementation.<! – more>

Happily, the W3C have ridden to our rescue once again by introducing the @viewport CSS rule.

Old school

Using the old meta tag approach, this is how we’d tell the browser what size the viewport should seen as:

<meta name='viewport' content='width=device-width'>

The CSS rule

Quite apart from being invalid, the viewport instruction isn’t data, it’s presentation. So, sticking to our data and presentation separation principles, the viewport instruction needs to be in CSS, not HTML.

The W3C solution in CSS looks like this:

@viewport {
width: device-width;
}

Or alternately, you can set the viewport with a number, like so:

@viewport {
width: 640px;
}

You can use the @viewport rule in conjunction with @media queries to force any viewport larger than 960 to shrink to 960px, like so:

@media screen and (min-width: 960px){
@viewport {
width: 960px;
}
}

Additional properties

The @viewport rule also allows us to zoom into a page by default, and even set the maximum zoom:

@viewport {
width: 960px;
zoom: 1;
max-zoom: 3;
}

It is possible to block zooming altogether by setting the user-zoom property to fixed. However zooming, especially on smartphones, is necessary for accessibility and I would recommend using this property.

One more very useful property allows us to lock our web page into landscape or portrait mode:

@viewport {
orientation: landscape;
}

Browser support

Here’s the bad news: currently this rule is only supported by Internet Explorer 10 and Opera, and requires the ‑ms- and ‑o- browser prefixes respectively.

Whilst that is disappointing to say the least, the fact that viewport functionality is already available in most browsers should mean this is a simple rule to pick up. Hopefully we’ll start seeing it introduced in nightly builds very shortly.

Do you care about standards-compliance? Do the W3C help or hinder progress on the web? Let us know in the comments.

Featured image/​thumbnail, window image via LostBob Photos

WDD Staff

WDD staff are proud to be able to bring you this daily blog about web design and development. If there’s something you think we should be talking about let us know @DesignerDepot.

Read Next

10+ Best Tools & Resources for Web Designers and Agencies (2023 updated)

Having the ability to envision a tastefully designed website (i.e., the role creativity plays) is important. But being …

3 Essential Design Trends, March 2023

One thing that we often think about design trends is that they are probably good to make a list. That’s not always true…

AI Changes Everything and Nothing

The marketing frenzy surrounding the recent flood of AI-powered apps and services has caused some observers to question…

15 Best New Fonts, March 2023

Fonts are one of the most critical tools in any designer’s toolbox. With clever use, you can transform a design from hu…

20 Best New Websites, March 2023

We have another exciting collection of the best new sites on the web for you. In this month’s episode, there are severa…

Exciting New Tools for Designers, March 2023

We have invoicing apps and scheduling tools. Some resources will save you the trouble of hiring a designer or developer…

Free Download: Budget Planner UI Kit

Designing an onboarding process can be tricky; there are so many different options, and if you get it wrong, you could …

3 Essential Design Trends, February 2023

There’s a common theme in this month’s collection of website design trends – typography. All three of these trends show…

Free Download: Education Icons

Icons are essential for successful web design. They provide an eye-catching, unobtrusive way to communicate important i…

15 Best New Fonts, February 2023

The fonts you embed in your website transform the design and can mean the difference between an extraordinary brand exp…

Unlocking the Power of Design to Help Users Make Smart Decisions

Users are faced with decision-making on websites every day. The decision-making process can be far more complex than it…

20 Best New Websites, February 2023

The quality of websites in 2023 has moved up a gear, with designers cherry-picking trends as tools, embracing new ideas…