/ Published in: CSS
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.
Expand |
Embed | Plain Text
Copy this code and paste it in your HTML
// 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> </head> <body> <div>The colour of this text will change.</div> </body> // 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 div{ color: #006699; font: 24px Georgia, serif; } // and for detect1024.css: div{ 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.