How to Modify Fonts in CSS
In the past, we used the HTML <font> tag to change font family, size, and other attributes. CSS makes it much easier. Learn how to modify font family and font size using CSS in the following steps.
- The
font-family
property is used in CSS to specify the font name to apply to an element. You can specify by font name (such as Arial, Helvetica, etc.) or font category (such as cursive, fantasy, monospace, etc.). To specify afont-family
of Arial, for example, you use:p { font-family: Arial; }
- If the Arial font were not found on the end user's computer, the browser would display a default font. If you are concerned that the font name you want to use might not be found on a user's computer, you can provide a list of options, like this:
In this case, the browser will first look for Arial. If it doesn't find Arial, it will then look for Helvetica.p { font-family: Arial, Helvetica; }
- To be extra safe, you can specify a couple of specific font family options followed by a font family category, like so:
This way, if neither Arial nor Helvetica is found, the browser at least knows to use some sans-serif font.p { font-family: Arial, Helvetica, sans-serif; }
Here is some sample code:
Which looks like this:<!DOCTYPE HTML> <html> <head> <meta charset="UTF-8"> <title>Font Family</title> <style type="text/css"> body { font-size: large; } div { margin: 10px; padding: 10px; border: 1px solid black; } </style> </head> <body> <div style="font-family: Arial, Helvetica, sans-serif;"> Arial, Helvetica, sans-serif </div> <div style="font-family: 'Times New Roman', Times, serif;"> 'Times New Roman', Times, serif </div> <div style="font-family: 'Courier New', Courier, monospace;"> font-family: 'Courier New', Courier, monospace </div> <div style="font-family: Verdana;"> Verdana </div> <div style="font-family: Comic Sans MS;"> Comic Sans MS </div> <div style="font-family: Wingdings;"> Wingdings </div> </body> </html>
- CSS allows us to specify exactly how big or small we want text to appear using
font-size
. The units you can use are:Unit Description px Pixels pt Points in Inches cm Centimeters mm Millimeters pc Picas em Ems ex Exs % Percentage rem Rems - In addition, font size can be defined using the following relative terms:
- xx-large
- x-large
- large
- medium
- small
- x-small
- xx-small
- smaller
- larger
The above code will output the following:<!DOCTYPE HTML> <html> <head> <meta charset="UTF-8"> <title>Font Sizes</title> </head> <body> <div id="smaller"> This text is <span style="font-size: smaller;">smaller and <span style="font-size: smaller;">even smaller and <span style="font-size: smaller;">even smaller</span> </span></span>. </div> <div id="larger"> This text is <span style="font-size: larger;">larger and <span style="font-size: larger;">even larger and <span style="font-size: larger;">even larger</span> </span></span>. </div> </body> </html>
Most experts agree that font size should be defined in relative units (e.g., em, rem, %, etc.) or in terms (e.g., large, small, etc.). This is because absolute font sizes can make pages inaccessible to people who have difficulty seeing. In most browsers, a user can change both the "zoom" of the page and, separately, the default font size. While "zooming" will increase the size of all elements (font included) on the page, changing the default browser font size won't have any effect on fonts whose sizes in CSS are specified using absolute, rather than relative, units.
Unfortunately, there is a downside to using relatively defined font sizes, which is that you have less control over design. This can cause text to wrap when you don't want it to or table cells to expand beyond what you had intended.