How to Change the Color of an HTML hr Element Using CSS

The <hr> element in HTML is used to create a horizontal rule or a line that separates content. By default, the color of this line is gray, but it can easily be changed using CSS. In this tutorial, we will show you how to change the color of an HTML hr element using CSS.

css change color of hr

Step 1: Define the <hr> Element

In your HTML file, you can define the <hr> element wherever you want to add a horizontal rule. For example:

Step 2: Add CSS Styles

Next, you need to add CSS styles to change the color of the <hr> element. There are two ways to add CSS styles to your HTML file:

Inline CSS: You can add CSS styles directly to the <hr> element using the style attribute.

External CSS: You can add CSS styles to an external CSS file and link it to your HTML file.

Step 3: Choose a Color

In the CSS styles, you can choose any valid CSS color value for the border-color property. For example:

  • Named color: red, blue, green, etc.
  • Hexadecimal value: #ff0000, #0000ff, #00ff00, etc.
  • RGB/RGBA value: rgb(255, 0, 0), rgba(0, 0, 255, 0.5), etc.

Read: How to Convert an Array to a Map in JavaScript

Changing <hr> width, height, and border-style

It is also worth noting that you can change other aspects of the <hr> element using CSS. For example, you can change the width, height, and border style of the line by setting the width, height, and border-style properties respectively.

Here’s an example:

By playing around with these properties, you can create a wide range of different styles for your horizontal rule.

Additionally, you can also use CSS to add rounded corners to your <hr> element, which can give it a more unique and interesting appearance. To do this, you can use the border-radius property:

With these simple CSS techniques, you can customize your <hr> element to perfectly match the look and feel of your web page.

Adding a background image to your <hr> element

It’s also worth mentioning that you can use CSS to add a background image to your <hr> element, which can create a unique and visually appealing separator. To do this, you can use the background-image property:

Just replace "your-image.png" with the URL or file path to your image. You can also set the background-size and background-repeat properties to control how the image is displayed.

With these CSS techniques, the possibilities are endless when it comes to customizing your <hr> element. Whether you want to change its color or style or add a background image, CSS makes it easy to achieve the look you’re after.

Keep in mind that accessibility should be considered when customizing the appearance of your <hr> element. For example, you may want to ensure that the color contrast between the background and the line is high enough for users with visual impairments to see. You can use tools such as the WebAIM Contrast Checker to check the contrast between your chosen color and the background.

Additionally, you may also want to consider using ARIA landmarks and roles to improve the accessibility of your <hr> element. The role="separator" attribute can be added to the <hr> element to indicate its purpose as a separator to assistive technologies.


By taking these accessibility considerations into account, you can ensure that your custom <hr> element is not only visually appealing but also usable for all users, including those with disabilities.

Browser Compatibility

It’s also important to consider browser compatibility when customizing the appearance of your <hr> element. Different browsers may have varying levels of support for CSS properties, and some properties may not work in older browsers. You should always test your custom <hr> element in multiple browsers to ensure that it looks and functions as expected.

In cases where you need to support older browsers, you may need to use CSS workarounds or fallbacks to ensure that your custom <hr> element still looks good and functions correctly. For example, you may need to use vendor prefixes, such as -webkit- and -moz-, to ensure that your styles are applied in older versions of Safari and Firefox.

You should also keep in mind that customizing the appearance of your <hr> element using CSS can impact its performance. Large and complex stylesheets can slow down your page and make it take longer to load. It’s important to optimize your styles and only include the properties that you actually need.

In summary, customizing the appearance of your <hr> element using CSS is a great way to add a touch of personality and style to your web page. By following the techniques outlined in this tutorial, you can create unique and visually appealing separators that match the look and feel of your web page. Additionally, by considering accessibility, you can ensure that your custom <hr> element is usable for all users, regardless of their abilities.

Have you found this to be useful?

Sharing this article will help support my work.

Similar Posts

0 0 votes
Article Rating
Notify of
Inline Feedbacks
View all comments