The content CSS declaration is often maligned as violating SoC (separation of content) – IMO this is often perfectly acceptable – perhaps you want to add a graphical symbol for presentational purpose only – say, a checkmark entity before list items for all completed tasks.

While the content property does support markup, you need to use escaped unicode to render html entities:

.some-class:before {
  content: "\203A\00a0";
}  /* adds a right angle quote and a non-breaking space before each .some-class element