Return to Snippet

Revision: 18182
at September 23, 2009 15:33 by paulgrenwood

Initial Code
// The first step is to load our base stylesheets, the jQuery library and our javascript.

<link rel="stylesheet" type="text/css" href="reset.css"/>
<link rel="stylesheet" type="text/css" href="detect800.css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="detect.js"></script>
<div>The colour of this text will change.</div>

// We’re going to test if the user screen size is less than 1024 x 768 and if it is, we’ll change the stylesheet.
//Define the same style in two different sheets. Once for the  1024 x 768 and once for the 800 x 600. Just make something quick and distinctive, for detect800.css I’m adding

 color: #006699;
 font: 24px Georgia, serif;

// and for detect1024.css:

 color: #df0000;
 font: 24px "Trebuchet MS", sans-serif;

// We’re going to add a JavaScript alert so the execution will pause until we click OK and we get to see the former style.

$(document).ready(function() {

if ((screen.width>=1024) && (screen.height>=768)) {
alert('Screen size: 1024x768 or larger');
$("link[rel=stylesheet]:not(:first)").attr({href : "detect1024.css"});
else  {
alert('Screen size: less than 1024x768, 800x600 maybe?');
$("link[rel=stylesheet]:not(:first)").attr({href : "detect800.css"});

// As a selector, we look for the link element with a rel attribute with a value of stylesheet. We’re going to redirect its href to a different stylesheet. Now, since I’m loading a reset stylesheet in the first place, i will add the :not(:first) modifier, so it won’t affect the first element.

Initial URL

Initial Description
I needed today to format the content differently according to the screen resolution of the user. So I thought that just by detecting the screen width using the screen.width property, I could change the stylesheet using jQuery. And so it was. Check the example and continue reading.

Initial Title
Detect Screen Size & Apply CSS

Initial Tags

Initial Language