Changing the color of an hr element

koool picture koool · Jun 17, 2011 · Viewed 1.2M times · Source

I want to change the color of my hr tag using CSS. The code I've tried below doesn't seem to work:

hr {
    color: #123455;
}

Answer

Anton Strogonoff picture Anton Strogonoff · Jun 17, 2011

I think you should use border-color instead of color, if your intention is to change the color of the line produced by <hr> tag.

Although, it has been pointed in comments that, if you change the size of your line, border will still be as wide as you specified in styles, and line will be filled with the default color (which is not a desired effect most of the time). So it seems like in this case you would also need to specify background-color (as @Ibu suggested in his answer).

HTML 5 Boilerplate project in its default stylesheet specifies the following rule:

hr { display: block; height: 1px;
    border: 0; border-top: 1px solid #ccc;
    margin: 1em 0; padding: 0; }

An article titled “12 Little-Known CSS Facts”, published recently by SitePoint, mentions that <hr> can set its border-color to its parent's color if you specify hr { border-color: inherit }.