bugl
bugl
HomeLearnPatternsPathsSearchPremium
HomeLearnPatternsPaths
Learn/CSS/CSS Foundations
CSS•CSS Foundations

CSS Font Size

The CSS font-size property is used to specify the size of the text/font.

Being able to manage the text size is very important in web design.

However, you should not use font size adjustments to make paragraphs look like headings, or headings look like paragraphs. Always use the proper HTML tags, like <h1> - <h6> for headings and <p> for paragraphs.

The font-size can be set to an absolute size or to a relative size.

Absolute sizes

  • px : Pixels offers fixed and precise control over the font size.
  • xx-small , x-small , small , medium , large , x-large , xx-large . These keywords has a predefined set of sizes in browsers.

Relative sizes

  • em : This unit is relative to the font size of the parent element.
  • rem : This unit is relative to the font size of the root HTML element.
  • % : This unit is relative to the font size of the parent element
  • smaller and larger : These units adjust the font size relative to the parent element.

How to Pick the Right Unit?

  • For fixed and precise control, px can be used.
  • With px , the web page will not scale well on different screen sizes or with user preferences.
  • Absolute size can be useful when the physical size of the output is known.
  • For scalable web designs, use em or rem ; they allow users to adjust text size in their browser settings.
  • Percentage ( % ) can be useful for adjusting font sizes based on parent elements.

Set Font Size With Pixels

Setting the text size with pixels ( px ) gives you full control over the text size.

If you use pixels, the web page may not scale very well on different screen sizes and the users cannot adjust the text size in their browser settings. However, users can still use the zoom tool to resize the entire page.

Example

Formatted code
h1 {
  font-size: 40px;
}
h2 {
  font-size: 30px;
}
p {
  font-size: 16px;
}

Live preview

Set Font Size With Em

The em unit is relative to the font size of the parent element. So, if the parent element has a font size of 16px, then 2.5em would result in 40px.

In the following example, the text size in em is the same as the previous example in pixels. However, the em unit allows the user to adjust the text size in the browser settings.

Example

Formatted code
body {
  font-size: 16px; /* Base font size */
}
h1 {
  font-size: 2.5em; /* 2.5 * 16 = 40px */
}
h2 {
  font-size: 1.875em; /* 1.875 * 16 = 30px */
}
p {
  font-size: 1em; /* 1 * 16 = 16px */
}

Live preview

Set Font Size With Rem

The rem unit is relative to the font size of the root HTML element (<html>).

Unlike em , which is relative to the font-size of its parent element, rem always refers to the font-size of the <html> element, regardless of its position in the document tree. This makes rem very useful for creating scalable and responsive designs. By changing the font-size of the <html> element, all elements sized with rem units will scale proportionally throughout the entire page.

The default font-size of the <html> element in most browsers, is 16px. So, by default, 1rem equals 16px unless explicitly overridden in the CSS.

Example

Formatted code
html {
  font-size: 16px; /* Set the root font size */
}
h1 {
  font-size: 2.5rem; /* 2.5 * 16 = 40px */
}
h2 {
  font-size: 1.875rem; /* 1.875 * 16 = 30px */
}
p {
  font-size: 1rem; /* 1 * 16 = 16px */
}

Live preview

The vw Unit

The font size can also be set with the vw unit, which means the "viewport width".

The vw unit is a relative unit that represents a percentage of the width of the viewport.

1vw = 1% of the current width of the browser's viewport. So, if the viewport is 500px wide, 1vw is 5px.

This way the text size will follow the size of the browser window:

Hello World

Resize the browser window to see how the font size scales.

Example

Formatted code
h1 {
  font-size:10vw;
}
p {
  font-size:5vw;
}

Live preview

Previous

CSS Font Style

Next

CSS Google Fonts

This chapter

Overview
108

Lessons

263m

Read time

1. CSS Tutorial2. CSS Introduction3. CSS Syntax4. CSS Selectors5. CSS Grouping Selectors6. How To Add CSS7. How To Add Internal CSS8. How To Add Inline CSS9. Multiple Style Sheets & Cascading Order10. CSS Comments11. CSS Errors12. CSS Colors13. CSS RGB Colors14. CSS HEX Colors15. CSS HSL Colors16. CSS Backgrounds17. CSS Background Image18. CSS Background Image Repeat19. CSS Background Attachment20. CSS Background Shorthand21. CSS Borders22. CSS Border Width23. CSS Border Color24. CSS Shorthand Border Property25. CSS Rounded Borders26. CSS Margins27. CSS Margin Collapse28. CSS Padding29. CSS Padding and box-sizing30. CSS Height and Width31. CSS Min/Max Height and Width32. CSS Box Model33. CSS Outline34. CSS Outline Width35. CSS Outline Color36. CSS Outline Shorthand37. CSS Outline Offset38. CSS Text Color39. CSS Text Alignment40. CSS Text Decoration41. CSS Text Decoration Styles42. CSS Text Transformation43. CSS Text Spacing44. CSS Text Shadow45. CSS Web Safe Fonts46. CSS Font Fallbacks47. CSS Font Style48. CSS Font Size49. CSS Google Fonts50. CSS Great Font Pairings51. CSS Font Property52. CSS Icons - Font Awesome53. CSS Icons - Bootstrap54. CSS Icons - Google55. CSS Links56. CSS Link Buttons57. CSS Lists58. CSS Tables59. CSS Table Size (Width and Height)60. CSS Table Alignment61. CSS Table Styling62. CSS Responsive Tables63. CSS The display Property64. CSS Hide Elements65. CSS The max-width Property66. CSS The position Property67. CSS Fixed and Absolute Positioning68. CSS Sticky Positioning69. CSS Position Offsets70. CSS The z-index Property71. CSS The overflow Property72. CSS overflow-x and overflow-y73. CSS Float74. CSS clear and Clearfix Hack75. CSS display: inline-block76. CSS Center Align77. CSS Horizontal Align78. CSS Vertical Align79. CSS Combinators80. CSS Pseudo-classes81. CSS Interactive Pseudo-classes82. CSS Structural Pseudo-classes83. CSS Pseudo-elements84. CSS Pseudo-elements for Text85. CSS Pseudo-elements for Content86. CSS Opacity87. CSS Navigation Bars88. CSS Vertical Navigation Bar89. CSS Horizontal Navigation Bar90. CSS Dropdowns91. CSS Advanced Dropdowns92. CSS Image Gallery93. CSS Image Sprites94. CSS Attribute Selectors95. CSS Advanced Attribute Selectors96. CSS Forms97. CSS Form Inputs98. CSS Form Focus and Icons99. CSS Form Elements100. CSS Counters101. CSS Units102. CSS Absolute Units103. CSS Relative Units104. CSS Inheritance105. CSS Specificity106. CSS Specificity Hierarchy107. CSS The !important Rule108. CSS Math Functions

On this page

How to Pick the Right Unit?Set Font Size With PixelsSet Font Size With EmSet Font Size With RemThe vw UnitHello World