In today’s technology climate, it is a jungle. There are thousands of devices, environments, etc. While this is great from the standpoint of the consumer, this gives the developer nightmares. It is a monumental task to make your application design and functionality operate smoothly everywhere. Fortunately, there are tools and methods to assist. In the world of the internet, Responsive Web Development (RWD) is a major player in the toolbox. What I would like to focus on in this post is screen size. With the myriad of devices available, there are tons of varying screen sizes. The developer/designer needs to make the best effort possible to make their app look and perform well on each size.
Probably the most popular method to accomplish this task is using CSS with media queries. I plan on delving into this in more detail at a later date, but suffice it to say that one can use media queries to target screen size ranges. That is typically combined with using percentage (%) sizes of widths, etc. to have the app alter based upon the screen size.
In today’s post, I want to focus, rather, on how we can use JavaScript to accomplish the same task. While this is a less-often used method, it can come in handy at certain times. Developers can make use of two properties…clientHeight and clientWidth. Let’s look at an example…
[code lang=”js”]
// Set the height of an image based upon the body
document.getElementById("someImg").style.height = (document.body.clientHeight – 50) * 0.95;
[/code]
What the aforementioned code does is set the height of an image to 95% of the browser chrome height minus 50 pixels to allow for spacing on the top. So if you place this code in a function, you could call this function whenever the browser chrome is resized using the onresize event. This would cause the image to change size.
So while this may not be the most prevalent usage of resizing elements to fit the screen, it is a handy tool on the occasions where you need to alter elements programmatically.
Happy Coding!
Clay Hess