If you just need a clean way to make circles with HTML and CSS, this kirupa tutorial keeps it simple and actually shows the part people usually fumble: getting the sizing and border-radius right.
“Perfect circle” usually dies the second someone adds a border and it turns into a sad little egg — box-sizing: border-box saves a lot of that grief.
Kirupa’s good for this stuff because he actually shows the boring sizing bits people hand-wave, then spend an hour chasing later.
The border “egg” thing is painfully real. Another sneaky one: line-height when you’re centering text inside the circle — I’ve had a “perfect” circle look off just because the text is quietly changing the vertical spacing. Kirupa’s nice for this because he doesn’t skip the boring sizing math that people ignore and then end up debugging for an hour later.