Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Single vs multiple stylesheets in responsive web design

In short:

Should you use one or multiple stylesheets when doing responsive web design?

In detail:

In responsive design, you tend to have one main chunk of CSS, then other bits and pieces to adjust the layout when it reaches certain breakpoints. You can structure your code one of two ways:

Single stylesheet

/* Main CSS */  @media only screen and (min-width: 480px) { /* CSS */ } @media only screen and (min-width: 640px) { /* CSS */ } @media only screen and (min-width: 800px) { /* CSS */ } 

Multiple stylesheets

<link rel="stylesheet" media="screen" href="main.css"> <link rel="stylesheet" media="only screen and (min-width: 480px)" href="480.css"> <link rel="stylesheet" media="only screen and (min-width: 640px)" href="640.css"> <link rel="stylesheet" media="only screen and (min-width: 800px)" href="800.css"> 

It seems that using one stylesheet will reduce the number of HTTP requests, but you'll have a larger file which will contain code that might not be used by some clients. Multiple stylesheets seems to keep file sizes down, but then you have more HTTP requests.

When should you opt for each approach? How do the pros and cons of number of HTTP requests and file size stack up in practice?

like image 981
Philip Morton Avatar asked Dec 28 '11 19:12

Philip Morton


People also ask

How many stylesheets should a website have?

A web app with different rather “siloed” sections probably need two CSS files. One global with the most common design patterns and then a section-specific CSS file with the less common design patterns that section needs. Sites with many vastly different styles of pages likely need two stylesheets.

Can you have 2 stylesheets?

Answer. Yes, you can apply more than one stylesheet to an HTML file. For each stylesheet you link to a page, you would just need to add an additional <link> element.

Is it better to have one CSS file or many?

Having only one CSS file is better for the loading-time of your pages, as it means less HTTP requests.

Can you load multiple stylesheets?

You can't. The last stylesheet you specify will be the one html page will use. Think of it as a big single .


1 Answers

Stylesheets are always downloaded, regardless of the current media, whether it be screen, print, or 3D-glasses.

See: Why do all browsers download all CSS files - even for media types they don't support?

So with that in mind, keeping them all in one stylesheet will reduce http requests, where as separate stylesheets will always create more requests with no benefit.

like image 75
Wesley Murch Avatar answered Sep 21 '22 14:09

Wesley Murch