66 lines
3.0 KiB
Markdown
66 lines
3.0 KiB
Markdown
|
---
|
|||
|
title: Before Selector
|
|||
|
localeTitle: Antes do seletor
|
|||
|
---
|
|||
|
## Antes do seletor
|
|||
|
|
|||
|
O seletor CSS **:: before** pode ser usado para inserir qualquer coisa antes do conteúdo de um elemento ou elementos. Ele permite que o designer execute qualquer design de CSS antes do conteúdo de um elemento. É usado anexando **:: before** a um elemento no qual ele será usado.
|
|||
|
|
|||
|
Vamos ver alguns exemplos:
|
|||
|
|
|||
|
```css
|
|||
|
p::before {
|
|||
|
content: "";
|
|||
|
border: solid 5px #ccc
|
|||
|
}
|
|||
|
|
|||
|
span.comment::before{
|
|||
|
content: "Comment: ";
|
|||
|
color: blue;
|
|||
|
}
|
|||
|
```
|
|||
|
|
|||
|
```html
|
|||
|
|
|||
|
<p> To infinity and beyond</p>
|
|||
|
<p> I am buz lightyear, I come in peace.</p>
|
|||
|
|
|||
|
<span class="comment"> May the force be with you</span>
|
|||
|
<br/>
|
|||
|
<span> Do. Or do not. There is no try</span>
|
|||
|
```
|
|||
|
|
|||
|
No exemplo acima, estamos prefixando uma borda cinza antes de cada elemento de parágrafo em uma página e também estamos prefixando as palavras comment em azul antes de cada elemento de span com o comentário de classe.
|
|||
|
|
|||
|
> Você pode conferir esta demonstração aqui https://jsfiddle.net/398by400/
|
|||
|
|
|||
|
#### Definição e uso
|
|||
|
|
|||
|
`::before` é um dos seletores de pseudo-elementos CSS, que são usados para estilizar partes especificadas de um elemento. Nesse caso, podemos inserir o conteúdo antes de algum elemento HTML do CSS. Apesar de vermos o conteúdo na página, não é parte do DOM, o que significa que não podemos manipulá-lo a partir do Javascript. Um truque para resolver esse problema: passar o conteúdo com um atributo de dados e usar o jQuery para manipulá-lo. Aqui está um exemplo de uso:
|
|||
|
|
|||
|
```css
|
|||
|
p::before {
|
|||
|
content: "Hello ";
|
|||
|
}
|
|||
|
```
|
|||
|
|
|||
|
```html
|
|||
|
|
|||
|
<p>world!!</p>
|
|||
|
```
|
|||
|
|
|||
|
Isso vai mostrar `Hello world!!` na página.
|
|||
|
|
|||
|
Não apenas strings, também imagens, contadores ou até mesmo nada ("", útil para clearfix) podem ser inseridos no `content` do `content` , mas **não em HTML** . Há um bom número de coisas legais que podem ser feitas usando `::before` e `after` maneira criativa. Você pode dar uma olhada no próximo link se você está curioso: [Um grupo inteiro de pseudo-elementos de coisas incríveis pode fazer](https://www.w3schools.com/css/css_pseudo_elements.asp)
|
|||
|
|
|||
|
#### Único-cólon vs duplo-cólon
|
|||
|
|
|||
|
Há um pouco de discussão sobre a maneira correta de usar pseudoelementos: estilo antigo de ponto-e-vírgula ( `:before` ), usado nas especificações CSS 1 e 2, versus recomendação CSS3, dois-pontos ( `::before` ), principalmente para _"estabelecer uma discriminação entre pseudo-classes e pseudo-elementos "_ . Mas, por razões de compatibilidade, o cólon único ainda é aceito. Falando sobre compatibilidade, o IE8 suporta apenas a notação de dois pontos.
|
|||
|
|
|||
|
#### Mais Informações:
|
|||
|
|
|||
|
[Pseudo-elementos CSS do W3Schools](https://www.w3schools.com/css/css_pseudo_elements.asp)
|
|||
|
|
|||
|
[CSS-Tricks :: depois de / :: antes](https://css-tricks.com/almanac/selectors/a/after-and-before/)
|
|||
|
|
|||
|
[Selecionando e manipulando pseudoelementos CSS como :: before e :: after jQuery](https://stackoverflow.com/questions/5041494/selecting-and-manipulating-css-pseudo-elements-such-as-before-and-after-usin)
|