HTML Academy
The font-size property
Typography2/20
Back to the list of tasks
  • 1. The font-size property
  • 2. Relative font size
  • 3. The line-height property
  • 4. Relative line height
  • 5. The font-family property
  • 6. The font-weight property
  • 7. The text-align property, horizontal text alignment
  • 8. The text-align property does more than just align text
  • 9. The vertical-align property, vertical text alignment
  • 10. Use of the background in typography
  • 11. The color property, text color
  • 12. Using margins to format the text
  • 13. The white-space property, space management
  • 14. Assignment of styles to preformatted text
  • 15. The text-decoration property, underlining as well as other effects
  • 16. The font-style property, italics
  • 17. The text-transform property, character case
  • 18. Shave space off the footer
  • 19. Summary of “Typography”
  • 20. Test: Designing an article
The line-height property
  • Sign up
  • Log in

Loading…
Everything will be ready in few seconds

  • Theory
  • Theory
  • Comments

Relative font size

One simple but not very flexible solution is to set the font size using absolute values, and this can be used in the simplest cases.

For example, you can set the font size for the entire document in the following way:

body { font-size: 16px; }

In the assignment about inheritance we figured out that all children elements with an undeclared value for the font size value will inherit this size, i.e., 16px.

We will set another fixed value for the font size of the page heading:

h1 { font-size: 32px; }

So far, so good. But imagine that you were given the following requirement: make sure that the font size of the document increases from 16px to 20px when the page is displayed on the larger screen of a monitor. If you change the size for the body tag, then the children elements will also change in size. But the heading size will not change at all; it will remain fixed at 32px.

We want to ensure that when the main font size for the parent changes (in our case, this is the body), its descendant elements will also proportionally change their font sizes. CSS has a special unit of measurement for this case: em.

The value 1em is the same font size that was assigned to the parent. Accordingly, if we want the font of the child element to always be twice as large as its parent, then we will set the value to 2em:

h1 { font-size: 2em; }

This approach to setting font styles allows us to make the code more flexible.

Along with the normal “absolute” keywords, there are also a couple of “relative” keywords that you can apply to the font size: larger and smaller. They literally make the font size of the element larger or smaller than the size specified by its parent element. You can learn the details of these keywords in the specification.

Comments

  • index.html
  • style.css
HTML
<!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8"> <title>The website of a beginning coder</title> <link rel="stylesheet" href="style.css"> </head> <body> <header> <p class="page-title">Blog</p> <nav class="blog-navigation"> <a href="index.html">Return to home</a> </nav> </header> <main> <article> <h1>Day Two. I want to become a coder</h1> <p>Today I spent the whole evening on the Internet. I read about the advantages of working as a coder. I often spent my free time watching cat videos, of course. But then I remembered something:</p> <ul> <li>You are helping a useful cause</li> <li>You can work remotely</li> <li>Interesting people</li> <li>Good salary</li> </ul> <p>My desire to learn has dramatically increased.</p> </article> <aside> Your ad could go here </aside> </main> <footer> Website footer </footer> </body> </html>
CSS
body { padding: 0 30px; font-size: 16px; line-height: 26px; font-family: "Arial", sans-serif; color: #222222; background: #ffffff url("img/bg-page.png") no-repeat top center; } h1 { font-size: 24px; line-height: normal; } h2 { font-size: 20px; line-height: normal; } a { color: #0099ef; text-decoration: underline; } .page-title { font-size: 36px; } .avatar { border-radius: 50%; } .blog-navigation { margin-bottom: 30px; padding: 20px; color: #ffffff; background-color: #4470c4; border: 5px solid #2d508f; } .blog-navigation h2 { margin-top: 0; } .blog-navigation ul { padding-left: 0; list-style: none; } .blog-navigation li { margin-bottom: 5px; } .blog-navigation a { color: #ffffff; } .skills dd { margin: 0; margin-bottom: 10px; background-color: #e8e8e8; } .skills-level { font-size: 12px; text-align: center; color: #ffffff; background-color: #4470c4; } .skills-level-ok { background-color: #47bb52; } footer { margin-top: 30px; }

What didn’t you like in this task?

Thanks! We’ll fix everything at once!

The code has changed, click “Refresh” or turn autorun on.

You’ve gone to a different page

Click inside the mini-browser to shift the focus onto this window.

100%
Goalscompleted
0
    1. Change the font size to 2.5em for the .page-title class,
    2. and then increase the font size of the whole body tag to 20px and make sure that the heading also increases proportionally in font size.

    Cookies ∙ Privacy ∙ License Agreement ∙ About ∙ Contacts ∙ © HTML Academy OÜ, 2019−2025

    VISAMastercard

    Log in

    or

    Forgot your password?

    Sign up

    Sign up

    or
    Log in

    Restore access

    Have you forgotten your password or lost access to your profile? Enter your email connected to your profile and we will send you a link to restore access.

    Forgot to connect your email to the profile? Email us and we’ll help.