In John Gallant’s opinion, font sizing is the most intense subject in web design. The focus of this portion of my Blog Talk Radio interview with John is to discover how you can set up font sizing on a site that you can maintain later on without going crazy. The reason for this ‘crazy making’, according to John is because sometimes too many people have their hands on the design of a page and they are changing font sizes for their particular portion of the page instead of having a more organized approach.
To begin this topic, John discusses the differences between sizing using pixels, percentages and ems. If you have absolute font sizing in, for instance, pixels, you ‘tell an element’ to be so many pixels tall and you would then have to set it up for all of your different font sizes.
Relative sizing, however works in a totally different way. Relative font sizing starts out with the root element, really the HTML element which has a default size, normally 16 pixels. If you don’t do anything, then that is the size of the text on the page.
So to globally resize the text, you would set your body size. You could set it in ems or in percentages. John normally uses percentages, mainly because his clients understand percentages better than ems.
To keep your font sizing in check, John recommends that you start out with a ‘strict organizational scheme’. To begin you would put a percentage on the body element for your global control. Then you should try to avoid putting font sizing on any of the intermediate elements.
So, say you put 110% on the body element, so now the body text might be approximately 18 pixels tall. Then you decide that you want the paragraphs in one of the columns to be a lot smaller. So you go to the column element and give it a size of 60%. But if you do a lot of stepping up and stepping down in percentages, things can get out of control. I think this is what John calls, ‘crazy making’.
Next, John explains the difference between using ems and percentages with dimensions (heights and widths of elements). A percentage width says, ‘how big is my parent element? I’m going to be, say 50% of that width.’ An em width, on the other hand says, ok, how big is ‘my text’? It tries to calculate how big a capital M is at its particular font size, say 50 ems and it sets the width of the element to 50 ems wide. It’s not perfect, says John. However, the advantage of using ems for widths and heights is that, if someone increases their text size, the em value for that element is going to change and the width of the element is going to change in proportion. So if the text gets longer, the element will get wider to accommodate it without having to wrap more often. The only danger with this is that you may run out of room on the page for the element.
John warns about a common mistake that people make with regard to applying percentages to margins. Suppose you have a left margin on a div and the div was 100 pixels wide. If you give it a 10% left margin, you might think that the margin is going to be 10 pixels. But that’s not what happens. Instead, it makes the margin a percentage of its parent.
To explain why he does not recommend using pixels for font sizing, John describes how the web actually evolved from print media where the reader has no control over the size of the text. Of course, people in the printing industry would not want users to be able to change the appearance of the text on the page. Therefore, many web designers would size in pixels in order to take control away from the user. This gets into the various different types of style sheets. John does not go into great detail about those here. However it is covered in his webinar on “CSS Explaining the Cascade” (See below for more details).
If you’d like to listen to the interview in its entirety and for a list of the links that John refers please go to: http://www.blogtalkradio.com/everyones/2010/06/14/css-junkie-john-gallant-second-interview .