Tillitsdone
down Scroll to discover

CSS Font Comprehensive Guide & Examples

Learn how to use the CSS font property to style text effectively.

Explore available options, syntax, and browser compatibility.

Enhance your web design skills with practical examples.
thumbnail

The font Property in CSS

Introduction

The CSS font property is a handy shorthand that lets you set multiple font-related properties in one go. It’s been widely available across browsers since July 2015, making it a reliable choice for web developers. This property is great for efficiently controlling the appearance of text on your website.

Overview of the font Shorthand Property

The font CSS property is a shorthand that combines multiple font-related properties into a single declaration. This shorthand allows you to set various aspects of an element’s font, such as size, family, style, weight, and more, all in one line of code. This makes it a highly efficient tool for web developers and designers, simplifying the process of styling text.

As with any shorthand property, any individual value that is not specified is set to its corresponding initial value. This means that if you only define a few properties, the rest will default to their standard settings. It’s important to note that the font-size-adjust and font-kerning properties are not directly settable by font, but they are reset to their initial values when the font shorthand is used.

The font property is particularly useful for streamlining your CSS code and ensuring consistency in your text styles across your website. By using this shorthand, you can make your code more readable and maintainable, which is especially beneficial for larger projects.

Constituent Properties

The font shorthand property combines several individual font-related properties into a single declaration. This makes it easier to manage and apply font styles in your CSS. The constituent properties of the font shorthand include:

  • font-family: Specifies the font family for the text, such as Arial, Times New Roman, or a generic family like serif or sans-serif.
  • font-size: Defines the size of the font, which can be specified in various units like pixels (px), em, or rem.
  • font-stretch: Adjusts the width of the font, with values like ultra-condensed, condensed, normal, expanded, and ultra-expanded.
  • font-style: Sets the style of the font, such as normal, italic, or oblique.
  • font-variant: Applies a variant of the font, such as normal or small-caps.
  • font-weight: Determines the weight or boldness of the font, with values like normal, bold, or numeric values from 100 to 900.
  • line-height: Sets the height of a line box, which can be specified as a number (e.g., 1.5), a length (e.g., 2em), or a percentage (e.g., 150%).

By using the font shorthand, you can combine these properties to efficiently style your text. For example, you can set the font size, family, style, and weight all in one line of code, making your CSS more concise and easier to manage. This is particularly useful for maintaining consistent styling across your website and improving the readability of your code.

Syntax

The font property can be specified in two main ways: as a single keyword selecting a system font, or as a shorthand for various font-related properties. Here’s a breakdown of the syntax:

/* font-size font-family */
font: 1.2em "Fira Sans", sans-serif;
/* font-size/line height font-family */
font: 1.2em/2 "Fira Sans", sans-serif;
/* font-style font-weight font-size font-family */
font: italic bold 1.2em "Fira Sans", sans-serif;
/* font-stretch font-variant font-size font-family */
font: ultra-condensed small-caps 1.2em "Fira Sans", sans-serif;
/* system font */
font: caption;

Key Points:

  1. System Font Keywords: If font is specified as a system keyword, it must be one of the following:

    • caption
    • icon
    • menu
    • message-box
    • small-caption
    • status-bar
  2. Shorthand for Font-Related Properties: If font is specified as a shorthand for several font-related properties, then:

    • It must include values for:
      • <font-size>
      • <font-family>
    • It may optionally include values for:
      • <font-style>
      • <font-variant>
      • <font-weight>
      • <font-stretch>
      • <line-height>
    • font-style, font-variant, and font-weight must precede font-size.
    • font-variant may only specify the values defined in CSS 2.1, that is normal and small-caps.
    • font-stretch may only be a single keyword value.
    • line-height must immediately follow font-size, preceded by ”/”, like this: 16px/3.
    • font-family must be the last value specified.

Understanding the syntax of the font shorthand property allows you to efficiently set multiple font properties in a single declaration, making your CSS code cleaner and more maintainable.

Values

The font shorthand property accepts a wide range of values that allow you to customize various aspects of text styling. These values include properties such as font style, variant, weight, stretch, size, line height, and family. Below is a detailed explanation of the different values you can use with the font property:

font-style

The font-style value determines the style of the font. The available options are:

  • normal: The default font style.
  • italic: Slanted text for emphasis.
  • oblique: Slanted text, similar to italic but less pronounced.

font-variant

The font-variant value specifies a variant of the font. The options are:

  • normal: The default font variant.
  • small-caps: Converts lowercase letters to small capital letters.

font-weight

The font-weight value defines the weight or boldness of the font. The options include:

  • normal: The default font weight.
  • bold: Bolder than the normal weight.
  • bolder: One step bolder than the parent element’s font weight.
  • lighter: One step lighter than the parent element’s font weight.
  • Numeric values (100 to 900): Specify the exact weight of the font, with 400 being normal and 700 being bold.

font-stretch

The font-stretch value adjusts the width of the font. The available options are:

  • normal: The default font stretch.
  • ultra-condensed: Very narrow font.
  • extra-condensed: Narrower than condensed.
  • condensed: Narrow font.
  • semi-condensed: Slightly narrow font.
  • semi-expanded: Slightly wide font.
  • expanded: Wide font.
  • extra-expanded: Wider than expanded.
  • ultra-expanded: Very wide font.

font-size

The font-size value determines the size of the font. It can be specified in various units such as:

  • Absolute sizes: xx-small, x-small, small, medium, large, x-large, xx-large.
  • Relative sizes: smaller, larger.
  • Lengths and percentages: 12px, 1.5em, 150%.

line-height

The line-height value sets the height of a line box. It can be specified as:

  • normal: The default line height.
  • Number: A multiplier of the element’s font size, e.g., 1.5.
  • Length and percentage: 2em, 150%.

font-family

The font-family value specifies the font family for the text. It can include:

  • Family name: Specific font families like Arial, Times New Roman.
  • Generic family: Generic font families like serif, sans-serif, monospace, cursive, fantasy.

System Font Values

The font property also accepts system font keywords that use the system’s default fonts for specific UI elements. This can be particularly useful for ensuring that your web application’s text matches the look and feel of the user’s operating system, providing a more seamless and integrated user experience.

Available System Font Values

Here are the system font keywords that you can use with the font property:

  1. caption:
    • Description: The system font used for captioned controls, such as buttons, drop-down menus, and other interactive elements.
    • Usage Example:
      p {
      font: caption;
      }
  2. icon:
    • Description: The system font used to label icons. This can be useful for ensuring that text labels for icons match the system’s default styling.
    • Usage Example:
      span.icon-label {
      font: icon;
      }
  3. menu:
    • Description: The system font used in menus, including drop-down menus and menu lists.
    • Usage Example:
      li {
      font: menu;
      }
  4. message-box:
    • Description: The system font used in dialog boxes. This can help ensure that the text in your web application’s dialog boxes matches the system’s default styling.
    • Usage Example:
      .dialog-box {
      font: message-box;
      }
  5. small-caption:
    • Description: The system font used for labeling small controls. This is useful for smaller text elements that need to match the system’s styling.
    • Usage Example:
      .small-label {
      font: small-caption;
      }
  6. status-bar:
    • Description: The system font used in window status bars. This can be useful for text elements that need to match the styling of the system’s status bar.
    • Usage Example:
      .status-bar {
      font: status-bar;
      }

Prefixed System Font Keywords

In addition to the standard system font keywords, browsers often implement several prefixed keywords. These prefixed keywords are specific to certain browsers and provide additional system font options. For example, Gecko (the rendering engine used by Firefox) implements the following prefixed system font keywords:

  • -moz-window
  • -moz-document
  • -moz-desktop
  • -moz-info
  • -moz-dialog
  • -moz-button
  • -moz-pull-down-menu
  • -moz-list
  • -moz-field

These prefixed keywords can be used to match the system fonts for specific UI elements in browsers that support them.

Usage Example

Here’s an example of how to use a prefixed system font keyword:

button {
font: -moz-button;
}

By using system font values, you can ensure that the text in your web application matches the default styling of the user’s operating system, providing a more consistent and integrated user experience. This can be particularly useful for applications that need to blend seamlessly with the user’s environment, such as desktop applications or system utilities.

Formal Definition

The font property in CSS is a shorthand that combines several font-related properties into a single declaration. This makes it easier to manage and apply font styles in your CSS. The formal definition of the font property includes the following initial values for its constituent properties:

  • font-family: 'serif'
  • font-size: medium
  • font-style: normal
  • font-variant: normal
  • font-weight: normal
  • font-stretch: normal
  • line-height: normal

By understanding the formal definition of the font property, you can effectively use this shorthand to streamline your CSS code and ensure consistency in your text styles across your website. This is particularly useful for maintaining readability and efficiency in larger projects.

Examples

Here are some practical examples to help you understand how to use the font shorthand property in your CSS code:

Example 1: Basic Usage

p {
font: 16px Arial, sans-serif;
}

In this example, the font property sets the font size to 16 pixels and the font family to Arial or a similar sans-serif font.

Example 2: Including Line Height

h1 {
font: bold 24px/1.5 "Times New Roman", serif;
}

Here, the font property sets the font weight to bold, the font size to 24 pixels, the line height to 1.5 times the font size, and the font family to “Times New Roman” or a similar serif font.

Example 3: Including Font Style and Variant

span {
font: italic small-caps 18px Georgia, serif;
}

In this example, the font property sets the font style to italic, the font variant to small-caps, the font size to 18 pixels, and the font family to Georgia or a similar serif font.

Example 4: Using System Fonts

button {
font: caption;
}

Here, the font property sets the font to the system’s default font for captioned controls, ensuring that the button text matches the system’s styling.

By understanding and utilizing these examples, you can effectively use the font shorthand property to create visually appealing and well-structured text styles on your website. This will help you maintain consistency and readability in your CSS code, making your web development process more efficient.

Browser Compatibility

The font shorthand property is widely supported across various browsers, making it a reliable choice for web developers and designers. Here’s an overview of the browser compatibility for the font property:

BrowserVersionSupported Since
Chrome1.0Dec 2008
Firefox1.0Nov 2004
Internet Explorer4.0Sep 1997
Edge1.0Jul 2015
Opera3.5Nov 1998
Safari1.0Jun 2003

Notes on Browser Compatibility

  • Chrome: Supported since the first release in December 2008.
  • Firefox: Supported since the first release in November 2004.
  • Internet Explorer: Supported since version 4.0, released in September 1997.
  • Edge: Supported since the first release in July 2015.
  • Opera: Supported since version 3.5, released in November 1998.
  • Safari: Supported since the first release in June 2003.

This broad compatibility ensures that the font shorthand property can be used confidently across different browsers and versions, providing consistent text styling for your web projects.

Additional Considerations

While the font property is widely supported, it’s always a good practice to test your CSS across different browsers and devices to ensure that your font styles render correctly. This is especially important for complex or custom font styles that may not be fully supported by all browsers.

For the most accurate and up-to-date information on browser compatibility, you can refer to the Can I use website, which provides detailed compatibility tables for various CSS properties, including the font shorthand property.

By understanding the browser compatibility of the font property, you can ensure that your web designs are consistent and visually appealing across different platforms and devices, enhancing the overall user experience.

See Also

To further enhance your understanding and usage of the font shorthand property, you may find the following resources and related properties helpful:

  • CSS Fonts Module Level 4: This specification outlines the details of the font property, including its syntax, values, and behavior. You can find more information in the CSS Fonts Module Level 4.

By referring to these resources, you can gain a deeper understanding of the font property and its role in web design and development. This knowledge can help you create more effective and efficient CSS code, ensuring that your font styles are applied consistently and correctly across different browsers and devices.

icons/css-4.svg CSS Blogs
CSS3 is the latest version of Cascading Style Sheets, offering advanced styling features like animations, transitions, shadows, gradients, and responsive design.
icons/logo-tid.svg

Talk with CEO

Ready to bring your web/app to life or boost your team with expert Thai developers?
Contact us today to discuss your needs, and let’s create tailored solutions to achieve your goals. We’re here to help at every step!
🖐️ Contact us
Let's keep in Touch
Thank you for your interest in Tillitsdone! Whether you have a question about our services, want to discuss a potential project, or simply want to say hello, we're here and ready to assist you.
We'll be right here with you every step of the way.
Contact Information
rick@tillitsdone.com+66824564755
Find All the Ways to Get in Touch with Tillitsdone - We're Just a Click, Call, or Message Away. We'll Be Right Here, Ready to Respond and Start a Conversation About Your Needs.
Address
9 Phahonyothin Rd, Khlong Nueng, Khlong Luang District, Pathum Thani, Bangkok Thailand
Visit Tillitsdone at Our Physical Location - We'd Love to Welcome You to Our Creative Space. We'll Be Right Here, Ready to Show You Around and Discuss Your Ideas in Person.
Social media
Connect with Tillitsdone on Various Social Platforms - Stay Updated and Engage with Our Latest Projects and Insights. We'll Be Right Here, Sharing Our Journey and Ready to Interact with You.
We anticipate your communication and look forward to discussing how we can contribute to your business's success.
We'll be here, prepared to commence this promising collaboration.
Frequently Asked Questions
Explore frequently asked questions about our products and services.
Whether you're curious about features, warranties, or shopping policies, we provide comprehensive answers to assist you.