CSS Em: Understanding and Using em Units

Gain a comprehensive understanding of em units in CSS. Learn how em units work including their advantages and disadvantages as well as how to effectively use them to create scalable, consistent, and accessible designs.

css em unit

What is Em in CSS?

In CSS, em is a unit of measurement for specifying font size. Unlike absolute units such as pixels or points, em is a relative unit that is based on the size of the parent element's font. If the parent element has a font size of 16 pixels, then 1em is equal to 16 pixels. This relative nature of the em unit makes it a popular choice for creating flexible and scalable web designs that adapt to different screen sizes and devices. Additionally, using em units can also help improve the accessibility of a website by allowing users to resize text to meet their needs.

Understanding How Em Units in CSS

The em unit in CSS is relative to the font size value of the parent element. They differ from absolute units such as pixels or points, in that em is scalable and automatically adjusts according to changes in the font size of the parent element. This makes em a suitable choice for scalable responsive web design and accessible sites, as users can adjust the text size to their preference. 

Understanding em units requires knowing that 1em equals the font size of the parent element. For example, by default, most browsers have a font-size of 16px. So without having to specify in the CSS document, the font-size of a parent element let’s say a <div> is 16 pixels, then you decide to insert a <p> with a margin-bottom of 2em in that parent <div>. The value of the 2em would equal 32 pixels because the <p> is a child element within the parent <div>. And if you were to later change the font-size of that parent <div> by specifying it as 32px in the CSS document, then the margin-bottom of the <p> child element which is 2em will now have a value of 64px.

Em units function much like rem units but the difference between the two is that em units are relative to the font-size of the parent element rather than the root element. 

Using Em Units in CSS

Because em units are relative to their parent element’s font-size, they should only be used in specific cases for paddings and margins where their cascading properties are very effective. This is because using em units can get complex quickly if you have several child elements with different em values in a parent element. If you decide to change that parent element's font-size, some unexpected sizing and spacing proportion compounding problems may occur especially for text.

Therefore, it is recommended that you use em units for specific use cases where you want the values of the child elements to be relative to the parent element. Rem units should instead be used generally. To convert pixels to em, divide the pixel value by the font-size of the parent element to get the equivalent em value.

Example of Using Em Units in CSS Code

Here is a code pen example we created showing how to properly use em units in CSS code to maintain proportional padding between different button size variations. You can see from the HTML and CSS section that the padding of the buttons remains proportional at different sizes. Whereas if you used rem for the padding of the buttons, the padding wouldn’t automatically adapt to the button’s font size making the smaller button look unappealing:

Advantages of Using Em Units

One of the main advantages of using em units in CSS is that they provide scalability. Because em units are relative to the parent element's font size, they adjust automatically as the parent element's font size changes. This makes it easier to create designs that are flexible and adaptable to different screen sizes, devices, and user preferences.

Scalability

One of the main advantages of using em units in CSS is that they provide scalability. Because em units are relative to the parent element's font size, they adjust automatically as the parent element's font size changes. This makes it easier to create designs that are flexible and adaptable to different screen sizes, devices, and user preferences.

Proportionality

Em units also help to maintain proportionality across different versions of one element in a design. For example, by basing padding and margin on the parent element's font size of different types of child buttons, you can ensure that the padding and spacing of each button remain proportional to their respective size be it small, medium, or larger.

Accessibility

Em units can also improve accessibility, as they make it easier to adjust text sizes to meet the needs of users with visual impairments. By using relative units such as em, users can adjust the text size to their preference, making it easier to read and understand the content.

Overall, using em units in CSS provides a flexible, scalable, and accessible way to manage margins and paddings in your designs, while maintaining consistency and readability.

Disadvantages and Limitations of Using Em Units

Complex Compounding Inheritance

Inheritance of text, padding, and margins sizes in em units can be complex and difficult to understand, especially on large, complex designs. The text size of the element is determined by the font size of the parent element. If the font size of the parent element changes, it can affect the size of all child elements, resulting in unexpected results.

Browser Inconsistencies

Em units may not be supported the same way by all browsers, and some older browsers may not display text correctly when using em units. This can lead to design inconsistencies and difficulties in maintaining consistency across different browsers and devices.

Increased Maintenance

The use of em units may also require additional maintenance and attention to detail. The size of text elements can change as the parent element's font size changes, requiring regular updates and adjustments to maintain consistency and accessibility.

Overall, while em units have benefits, they also have limitations that should be considered when using them in a design. It's essential to understand these limitations and weigh the impact of using em units in your designs before implementation.

EM vs REM vs PX

Differences Between Em, Rem, and Pixels CSS Units

em, rem, and px are CSS units of measurement used in CSS to set the sizing and spacing of elements. Here's a brief overview of the differences between each especially em vs rem.

Em is relative to the font size of its parent element. For example, if the parent element's font size is 16px and the value of a child element is .5em, the font size of the element will be 8px.

rem is similar to em, but it is relative to the root element (HTML) rather than the parent element. This means that changing the font size of the root element will change the size of all elements that use rem.

A pixel is a fixed unit of measurement, meaning the size of an element remains the same regardless of the size of its parent element or the root element. 

Should You Use Em, Rem, or Pixels CSS Units?

In general, em should be used only for specific use cases such as if you want proportional padding or margin between different variations of child elements in relation to their parent element. 

Rem should be used in most cases instead of em and px units. This is because rem units are less complicated than em units and don’t have a compounding effect because it is relative to the root element. In complex designs, rem units are far more predictable, especially for font sizes. Like em, Rem is also scalable and allows for accessibility, unlike px.

Px is recommended for elements that need a fixed size or spacing. This is because px is not a scalable unit of measurement in CSS which can lead to accessibility problems. Therefore, it should be used sparingly.  

Ultimately, the best unit of measurement will depend on the design requirements and the desired behavior of the elements. It's important to carefully consider each option and choose the one that best meets your needs.

Final Thoughts on Em Units in CSS

Em units in CSS provide a flexible and scalable way to set the spacing of elements on a web page. By being related to the font size of the parent element, em units allow for more consistency and accessibility in designs. When used correctly, EM modules can help create websites that are visually appealing and easy to use.

However, it is important to understand the limitations of EM units and consider them in conjunction with other units, such as REM and PX, to ensure that your designs meet your specific requirements. Careful consideration of the trade-offs between different units of measurement is key to creating effective and accessible designs.