<em>
tag is commonly used to emphasize text. It adds semantic meaning to the content, indicating that the text within it is of special importance or emphasis. However, with the power of CSS, we can achieve similar visual effects and even more customized ones, while separating the presentation from the content. This approach not only gives more control over the appearance of emphasized text but also adheres to the principle of separation of concerns in web development. In this blog, we will explore how to use CSS code to replace the functionality of the HTML <em>
tag.<em>
TagThe <em>
tag is an inline element in HTML. By default, most browsers render the text inside it in italic style. For example:
<p>This is a <em>sentence</em> with emphasized text.</p>
In this code, the word “sentence” will be displayed in italic font.
CSS allows us to target specific elements and apply various styles to them. To replace the <em>
tag, we can use classes or other selectors to apply styles similar to or different from the default <em>
appearance. The key is to define the styles we want and then apply them to the relevant text.
One of the most common ways is to create a CSS class and apply it to the text that needs emphasis.
<!DOCTYPE html>
<html lang="en">
<head>
<style>
.emphasized {
font-style: italic;
color: #ff6600;
}
</style>
</head>
<body>
<p>This is a <span class="emphasized">sentence</span> with emphasized text.</p>
</body>
</html>
In this example, we created a class named emphasized
in the CSS. The class sets the text to italic and changes its color to orange. Then we applied this class to a <span>
element in the HTML, achieving a similar effect to the <em>
tag but with more customization.
We can also use attribute selectors to target elements with a specific attribute value.
<!DOCTYPE html>
<html lang="en">
<head>
<style>
[data-emphasis] {
font-weight: bold;
text-decoration: underline;
}
</style>
</head>
<body>
<p>This is a <span data-emphasis>sentence</span> with emphasized text.</p>
</body>
</html>
Here, we used an attribute selector [data-emphasis]
to target any element with the data - emphasis
attribute. The text inside these elements will be displayed in bold and underlined.
<em>
AppearanceIf we just want to mimic the default appearance of the <em>
tag, we can simply set the font - style
property to italic
.
.emphasis - like - em {
font-style: italic;
}
<p>This is a <span class="emphasis-like-em">sentence</span> with emphasized text.</p>
We can add animation effects to the emphasized text to make it more eye - catching.
<!DOCTYPE html>
<html lang="en">
<head>
<style>
@keyframes colorChange {
from {
color: black;
}
to {
color: red;
}
}
.animated - emphasis {
animation: colorChange 2s infinite;
}
</style>
</head>
<body>
<p>This is a <span class="animated-emphasis">sentence</span> with emphasized text.</p>
</body>
</html>
In this example, we defined an animation named colorChange
that changes the text color from black to red. Then we applied this animation to the animated - emphasis
class, which is applied to a <span>
element.
Even when using CSS to replace the visual effect of the <em>
tag, it’s important to maintain semantic HTML. If the text truly represents emphasis, consider using the <em>
tag and then overriding its default style with CSS. This way, screen readers and other assistive technologies can still understand the meaning of the emphasized text.
<!DOCTYPE html>
<html lang="en">
<head>
<style>
em {
font-style: normal;
color: blue;
text-decoration: underline;
}
</style>
</head>
<body>
<p>This is a <em>sentence</em> with emphasized text.</p>
</body>
</html>
Ensure that the emphasized text looks good on different devices and screen sizes. You can use media queries to adjust the styles accordingly.
@media (max - width: 600px) {
.emphasized {
font-size: 14px;
}
}
In this media query, we adjusted the font size of the emphasized
class when the screen width is less than or equal to 600px.
Using CSS code to replace the HTML <em>
tag offers greater flexibility and customization in web design. We can achieve a wide range of visual effects, from simple italic text to complex animations. However, it’s crucial to balance customization with semantic HTML to ensure accessibility and maintainability. By following the best practices, we can create more engaging and user - friendly web pages.
<em>
element:
https://developer.mozilla.org/en-US/docs/Web/HTML/Element/em