Descreva as pseudo-classes e pseudo-elementos em CSS.
sobes.tech IA
Resposta da IA
As pseudo-classes e pseudo-elementos expandem as capacidades dos seletores em CSS, permitindo aplicar estilos com base no estado, posição ou outras características dos elementos, que não podem ser expressas por seletores simples.
Pseudo-classes
As pseudo-classes começam com dois pontos (:). São usadas para estilizar um elemento em um estado específico.
Principais pseudo-classes:
:hover- estiliza o elemento ao passar o cursor sobre ele.:active- estiliza o elemento durante o clique (ativação).:focus- estiliza o elemento que atualmente tem o foco (por exemplo, após clicar num link ou num campo de entrada).:visited- estiliza os links visitados.:link- estiliza links não visitados.:first-child- estiliza o primeiro filho do seu elemento pai.:last-child- estiliza o último filho do seu elemento pai.:nth-child(n)- estiliza o n-ésimo filho do seu elemento pai.npode ser um número, uma palavra-chave (even, odd) ou uma expressão (2n+1).:nth-last-child(n)- estiliza o n-ésimo filho a partir do final.:not(selector)- estiliza os elementos que não correspondem ao seletor especificado.
/* Exemplo de uso de pseudo-classes */
a:hover {
color: blue; /* Muda a cor do link ao passar o cursor */
}
input:focus {
border-color: green; /* Muda a cor da borda do campo de entrada ao focar */
}
li:first-child {
font-weight: bold; /* Estiliza o primeiro item da lista */
}
Pseudo-elementos
Os pseudo-elementos começam com dois pontos (::). São usados para estilizar uma parte específica do elemento ou para inserir conteúdo gerado antes ou depois do conteúdo do elemento.
Principais pseudo-elementos:
::before- insere conteúdo gerado antes do conteúdo do elemento. Geralmente usado com a propriedadecontent.::after- insere conteúdo gerado após o conteúdo do elemento. Também requer a propriedadecontent.::first-letter- estiliza a primeira letra do bloco de texto.::first-line- estiliza a primeira linha do bloco de texto.::selection- estiliza a parte do elemento que foi selecionada pelo usuário.
/* Exemplo de uso de pseudo-elementos */
p::first-letter {
font-size: 2em; /* Aumenta a primeira letra do parágrafo */
font-weight: bold;
}
h2::after {
content: " ---"; /* Adiciona texto após o título */
color: gray;
}
mark::selection {
background-color: yellow; /* Muda o fundo do texto selecionado */
color: black;
}
Historicamente, as pseudo-classes usavam um único dois pontos (:) para compatibilidade com CSS2.1, enquanto os pseudo-elementos em CSS3 começaram a usar dois dois pontos (::) para uma melhor distinção. Recomenda-se usar dois dois pontos para pseudo-elementos no código moderno.
Tabela de comparação:
| Característica | Pseudo-classe | Pseudo-elemento |
|---|---|---|
| Sintaxe | :seletor |
::seletor |
| Propósito | Estado do elemento | Parte do elemento ou conteúdo gerado |
| Exemplos | :hover, :focus, :first-child |
::before, ::after, ::first-letter |