Update your font-size to REM units
A lot of websites are using pixel units that are difficult to adjust in the increasing variety of different devices.
CSS3 introduces a few new units, including the REM unit, which stands for “root em”.
So, how are we using REM ?
let’s say we have this CSS:
CSS
article h2 {font-size:20px;}
article p {font-size:12px;}
First of all we need to decide what size of px will be relative to all font’s. and to make it easy, the best practice I have done is to make root font-size 1px like this:
CSS
html {font-size:1px;}
Second of all we need to replace the rest of the font size values from pixel to rem units.
CSS
article h2 {font-size:20rem;}
article p {font-size:12rem;}
What REM does, it takes 20REM and Multiply it with the root element:
20 REM * 1 PX = 20PX.
Browser support
IE7 & IE8 still need to use PX values. This will force us to write font size twice, one time in PX and second time with REM.
CSS
article h2 {font-size:20px; font-size:20rem;}
article p {font-size:12px; font-size:12rem;}
Why REM units are good for you?
Lets assume we need to enlarge all fonts in our website by 20%, all we have to do is to change the size of the font-size in the root element, like this:
html {font-size:1.2px;}
If you wand to reduce by 20%, you will do it like this:
html{font-size:0.8px;}
Really nice and easy!
REM for Responsive Design
When you want to change all font size according to breakpoints in your responsive design it is a lot more easy. See example:
@media (min-width: 320px){
html{ font-size:1.4px; }
} @media (min-width: 600px){
html{ font-size:1.2px; }
}
Now in smaller screens we re-size all fonts by 40% bigger, and in medium screens we re-size it by 20% bigger.
Using less to resolve the needs of writing everything twice — for supporting old browsers
in less or sass you can add functions to save you the time of writing everything twice.
less — font-size function and calling It
.font-size(@font-size) {
font-size : @font-size * 1px;
font-size : @font-size * 1rem;
}
article h2 { .font-size(20); }
The compiled CSS will look like this:
article h2{
font-size:20px;/*Support IE7 & IE8*/
font-size:20rem;
}
Enjoy!
If you like this tip, I will be happy to get your LIKE. You are welcome to follow me and endorse my skills.
Elad Shechter
Originally published at coderwall.com by me, on May 28, 2013.