Imagem post: Como usar o :before e o :after
CSS

Como usar o :before e o :after

Como utilizar os pseudo-elementos :before e :after com a propriedade content.

Por
8

Muito parecido com as pseudo-classes os pseudo-elementos são elementos inseridos dinamicamente via CSS. No caso das pseudo-classes, o browser finge que insere uma classe dinâmica em um elemento para que você customize um determinado estado do elemento. Por exemplo, a pseudo-classe :hover estiliza o estado de quando o mouse é colocado em cima dos elementos. Os pseudo-elementos funcionam quase da mesma forma. Existem vários, mas eu vou me focar agora apenas no :before e no :after. Ambos funcionam da mesma forma.

Os pseudo-elementos :before e :after trabalham em parceria com uma propriedade chamada content. Veja o pedaço de código abaixo:

Eu começo selecionando o elemento a. Com o pseudo-elemento :before eu digo ao navegador que quero fazer algo no início deste elemento. A propriedade content serve para inserir conteúdo dinâmico no HTML. Nesse caso, estou inserindo uma “setinha” antes do objeto. É mais ou menos como no JQuery, quando você utiliza as funções prepend (:before) e append (:after).

Eu posso estilizar da maneira que eu quiser novo elemento. É como se você colocasse um span com algum conteúdo. Logo, você pode fazer algo como o código abaixo:

Tem algumas limitações, por exemplo, eu não posso colocar vários elementos e também não consigo colocar código HTML.
Mesmo assim, podemos “criar” este elemento e colocar uma imagem de background ou até mesmo inserir uma font-icon para facilitar a inserção de ícones no layout.

Lembrando que isso só funciona a partir do IE8.

8

Por Diego Eis

Diego Eis criou o Tableless para disseminar os padrões web no Brasil. Como consultor já treinou equipes de empresas como Nokia, Globo.com, Yahoo! e iG. É palestrante e empreendedor.

http://about.me/diegoeis/

Mais posts do autor

  • Raphael Fabeni

    Simples e explicativo! Belo post Diego.. Parabéns!

  • Waldemir

    Show, se não me engano isso já funciona no IE7.

  • http://twitter.com/magoopv Luciano Baraúna

    Não Funciona não eu fiz um teste e o pseudo-elemento só é reconhecido até o ie 8

  • http://twitter.com/magoopv Luciano Baraúna

    Caramba estava pesquisando isso hoje rsrsrs e vi o twitter vlw Diego !

  • Trambulhao

    Muito bom.. parabéns.
     
    Só um pequeno reparo! Na última frase tem um engano, o correto seria “..só que ao contrário do :before..”

  • Filipe

    Opa, acho que você deve ter se confundido um pouco. O pseudo-elemento :after funciona da mesma forma, só que ao contrário do :after.

    Otimo esplicação vlww.

  • Marta Preuss

    Uso muito o before e o after para fazer breadcrumbs. É a forma mais fácil. No IE7 faço em jQuery, mas só nele. Filtro o navegador e faço a função.

  • http://twitter.com/gilvamm Gilvam Mourão 

    Muito bom

Mais artigos