what are <hr> tags? / intro
hr
is an html element that appears on screens as a divider. its useful for helping you seperate content, i.e. large bodies of texts. its purpose is to define thematic breaks/change of content in your html document. by default, they appear to be a line with a gray inset border.
this short guide will detail some methods to styling them which you can use to better fit the theme of your pages ☺
of course not every possible way you could style them w css is listed here; the purpose of this is more just a 'bounce pad' where you can combine/add to what ive compiled here
p.s. it stands for 'horizontal rule'basic border styling
i find the hr
tag's default styling really ugly and not suited for most pages kek. the simplest way to style it is just to change its default border style.
<hr> w/ new border
hr { border: none; /* the border is not actually a line but a very thin box. */ border-top: 4px dotted pink; /* by referring to only one vertical line in the box's border we get an actual line */ }
taller/"thicker" border
hr
, at its core, is just an empty div
acting as a line; its not just a line, but a very thin box. we can change its width to be taller by simply giving it a height value.
30px tall hr
hr { height: 30px; }
if you want a border with a rounded border, we can do so by defining a background property and using that as a "line" while having rounded edges at the same time.
rounded border
#round hr { border: none; border-radius: 50px; height: 20px; /* this effect is more noticable the thicker (or taller in this case) u make it*/ background: deeppink; }
image/background borders
by making our borders taller by simply defining the height of hr
, we can also give the hr a backgrond image value so the border image is "inclosed" in a semantic tag and isnt just an image. this is good as just a good coding practice (i think) and accessibility (i think)
!!of course theres instances were image borders are more suited!! but i find the most frequent times ill use an image border itll be for the same purpose hr
was made for
tip: set the height of the hr
to the image height
non-repeating image
hr { border: none; height: 50px; background-image: url(hhttps://faegardens333.neocities.org/etc/fruit_line.gif); background-size: auto 100%; /* the width of the image will be automatically determined while the height will be 100% of the element width (in this case its 50px) */ background-repeat: no-repeat; /* the bg wont repeat */ background-position: center; /* bg will be centered */ image-rendering: pixelated; }
repeating image
note: if ur doing this try and be ok with the image's edges not being perfectly cut off.. i cant think of any other way on how to prevent this but idk. play around with background-size
by urself kek TT~TT
hr { border: none; height: 32px; background-image: url(https://faegardens333.neocities.org/etc/orange_slice.png); background-size: auto 100%; /* the width of the image will be automatically determined while the height will be 100% of the element width (in this case its 32px) */ background-repeat: repeat-x; /* the background will repeat horizontally */ background-position: center; /* bg will be centered */ }
since hr
can be customized just like a div
any background type can be used (duh) like linear gradients.
thinner lines look really good with gradients imo ☺
gradient
hr { border: none; height: 5px; background-image: linear-gradient(45deg, yellowgreen, #D4C81E, deeppink); }