tig tig - 1 year ago 101
CSS Question

Use FontAwesome or Glyphicons with css :before

Is there any way to embed HTML in the css

element when using a

I want to use a Font Awesome (or Glyphicon) in a use case like this:

h1:before {
content: "X";
padding-right: 10px;
padding-left: 10px;
color: @orangeLight;

is something like
<i class="icon-cut"></i>

I can, of course do this manually in HTML, but I really want to use
in this case.

Similarly, is there any way to use
as a list bullet? This works, but doesn't behave correctly for multi-line bullet items:

<ul class="icons">
<li><i class="icon-ok"></i> Lists</li>
<li><i class="icon-ok"></i> Buttons</li>
<li><i class="icon-ok"></i> Button groups</li>
<li><i class="icon-ok"></i> Navigation</li>
<li><i class="icon-ok"></i> Prepended form inputs</li>

Answer Source

What you are describing is actually what FontAwesome is doing already. They apply the FontAwesome font-family to the ::before pseudo element of any element that has a class that starts with "icon-".

[class*=" icon-"]:before {
  font-family: FontAwesome;
  font-weight: normal;
  font-style: normal;
  display: inline-block;
  text-decoration: inherit;

Then they use the pseudo element ::before to place the icon in the element with the class. I just went to http://fortawesome.github.com/Font-Awesome/ and inspected the code to find this:

.icon-cut:before {
  content: "\f0c4";

So if you are looking to add the icon again, you could use the ::after element to achieve this. Or for your second part of your question, you could use the ::after pseudo element to insert the bullet character to look like a list item. Then use absolute positioning to place it to the left, or something similar.

i:after{ content: '\2022';}