5.5.2 Pseudo-elementos & Seletores Avançados no CSS
Pseudo-elementos estilizam partes específicas de um elemento sem precisar alterar o HTML diretamente.
🔹 ::before
e ::after
Permitem inserir conteúdo artificial antes ou depois de um elemento.
::before
Insere conteúdo antes do elemento
::after
Insere conteúdo depois do elemento
Exemplo:
cssCopiarEditarh1::before {
content: "👉 ";
}
h1::after {
content: " 👈";
}
💡 Isso adiciona emojis antes e depois do título sem mudar o HTML!
🔹 ::selection
::selection
Aplica estilo ao texto selecionado pelo usuário (como quando ele arrasta o mouse sobre o texto).
cssCopiarEditar::selection {
background: yellow;
color: black;
}
🔹 ::first-line
e ::first-letter
::first-line
e ::first-letter
Usados para estilizar a primeira linha ou a primeira letra de um bloco de texto.
cssCopiarEditarp::first-line {
font-weight: bold;
}
p::first-letter {
font-size: 2rem;
color: red;
}
🚀 Seletores Avançados (CSS3+)
🔹 :has()
– Seletor Parental (experimental)
:has()
– Seletor Parental (experimental)Seleciona um elemento pai que contém um elemento específico.
cssCopiarEditararticle:has(img) {
border: 2px solid green;
}
💡 Aplica borda a <article>
apenas se contiver uma <img>
.
⚠️ Suporte ainda limitado em alguns navegadores. Teste antes!
🔹 :is()
– Agrupamento inteligente
:is()
– Agrupamento inteligenteSimplifica a escrita de seletores múltiplos com a mesma regra.
cssCopiarEditar:is(h1, h2, h3) {
font-family: 'Arial';
}
🔹 É útil para evitar repetição e aumentar a legibilidade.
🔹 :where()
– Sem especificidade
:where()
– Sem especificidadeIgual ao :is()
, mas com zero peso de especificidade. Ideal para estilos padrão e resets.
cssCopiarEditar:where(article, section) {
margin: 0;
padding: 0;
}
🔹 :empty
– Elemento sem conteúdo
:empty
– Elemento sem conteúdoSeleciona elementos vazios (sem filhos ou texto).
cssCopiarEditardiv:empty {
display: none;
}
💡 Oculta automaticamente <div>
sem conteúdo.
Last updated