Artigo original: CSS Pseudo-Elements - Before and After Selectors Explained

Seletor before

O seletor ::before do CSS pode ser usado para inserir conteúdo antes do conteúdo dos elementos selecionados. Ele é usado anexando ::before ao seletor do elemento no qual ele agirá.

Aqui temos alguns exemplos:

p::before { 
  content: "* ";
}

span.comentario::before {
  content: "Comentário: ";
  color: blue;
}
<p> Ao infinito e além!</p>
<p> Sou o Buzz Lightyear. Eu venho em paz.</p>

<span class="comentario">Que a Força esteja com você.</span>
<br/>
<span> Faça. Ou não faça. Tentativa não há.</span>

No exemplo acima, anexamos um asterisco e um espaço antes de cada elemento de parágrafo da página. Além disso, anexamos "Comentário: " em azul antes de casa elemento span que tenha a classe comentario.

Seletor after

O seletor ::after do CSS pode ser usado para inserir conteúdo após do conteúdo dos elementos selecionados.  Ele é usado anexando ::after ao seletor do elemento no qual ele agirá.

Alguns exemplos:

.buzz::after { 
  content: " - Buzz Lightyear";
  color: blue;
}

.yoda::after { 
  content: " - Yoda";
  color: green;
}
<p class="buzz"> Ao infinito e além!</p>
<p class="yoda"> Faça. Ou não faça. Tentativa não há.</p>

No exemplo acima " - Buzz Lightyear" em azul é anexado ao elemento com a classe buzz. Também anexamos " - Yoda" em verde ao elemento com a classe yoda.

image

O uso de dois pontos uma ou duas vezes

Existe alguma discussão com relação ao modo certo de se usar os pseudoelementos – no estilo antigo, com dois pontos (:before), usado nas especificações do CSS 1 e 2, em contraste com a recomendação do CSS3, com dois pontos usados duas vezes (::before), especialmente para "estabelecer uma diferenciação entre as pseudoclasses e os pseudoelementos".

Por motivos de compatibilidade, o método com dois pontos apenas uma vez ainda é aceito. Lembre-se de que o IE8 dá suporte apenas a essa notação.

Para mais informações: