Elementos seletores CSS
Os seletores de elementos em CSS são parte fundamental para aplicar estilos a elementos específicos em uma página web. Eles definem quais elementos HTML serão estilizados com as regras CSS especificadas. Aqui estão alguns tipos comuns de seletores de elementos:
Seletores Universais (
*): Aplicam estilos a todos os elementos na página. Por exemplo,* { margin: 0; padding: 0; }zera as margens e preenchimentos padrão.Seletores de Tipo (ou de Tag): Selecionam todos os elementos de um tipo específico. Por exemplo,
p { color: blue; }aplicará a cor azul a todos os parágrafos.Seletores de Classe (
.): Selecionam elementos com uma classe específica. Por exemplo,.destaque { font-weight: bold; }aplicará negrito a todos os elementos com a classe "destaque".Seletores de ID (
#): Selecionam um elemento com um ID específico. Por exemplo,#cabecalho { background-color: grey; }aplicará uma cor de fundo cinza ao elemento com o ID "cabecalho".Seletores de Descendência: Selecionam elementos que são descendentes diretos de outro elemento. Por exemplo,
nav a { color: green; }aplicará a cor verde a todos os links (<a>) que são descendentes diretos de um elemento<nav>.Seletores de Filho Direto (
>): Selecionam elementos que são filhos diretos de outro elemento. Por exemplo,ul > li { list-style-type: square; }aplicará um estilo de lista quadrado apenas aos elementos<li>que são filhos diretos de uma lista não ordenada (<ul>).Seletores de Atributo (
[]): Selecionam elementos com atributos específicos. Por exemplo,input[type="text"] { width: 200px; }aplicará uma largura de 200 pixels a todos os campos de texto.Seletores de Pseudo-classes (
:): Selecionam elementos em estados específicos. Por exemplo,a:hover { color: red; }aplicará uma cor vermelha quando um link é hovered (passagem do cursor sobre ele).Seletores de Pseudo-elementos (
::): Permitem selecionar partes específicas de um elemento. Por exemplo,p::first-line { font-weight: bold; }aplicará negrito à primeira linha de todos os parágrafos.Seletores de Estado (
:checked,:disabled, etc.): Selecionam elementos com base em seu estado. Por exemplo,input:checked { background-color: yellow; }aplicará uma cor de fundo amarela aos elementos<input>marcados.Seletores Adjacentes (
+): Selecionam elementos que são irmãos imediatos. Por exemplo,h2 + p { font-style: italic; }aplicará estilo itálico ao primeiro parágrafo que é irmão imediato de um título<h2>.Seletores de Substring de Atributo (
^,$,*): Selecionam elementos com atributos que começam (^), terminam ($) ou contêm (*) um valor específico. Por exemplo,a[href^="https"] { color: blue; }aplicará uma cor azul a todos os links que começam com "https".Seletores de Negação (
:not()): Selecionam elementos que não correspondem a um determinado seletor. Por exemplo,p:not(.destaque) { color: grey; }aplicará uma cor cinza a todos os parágrafos que não têm a classe "destaque".Seletores de Nth-child (
:nth-child()): Selecionam elementos com base em sua posição em relação aos seus irmãos. Por exemplo,ul li:nth-child(odd) { background-color: lightgrey; }aplicará uma cor de fundo cinza claro a todos os itens de lista ímpares.Seletores de Filho Único (
:only-child,:only-of-type): Selecionam elementos que são filhos únicos de seu pai, independente do tipo de elemento (:only-child) ou do tipo de elemento específico (:only-of-type). Por exemplo,p:only-child { font-size: 18px; }aplicará um tamanho de fonte de 18 pixels apenas aos parágrafos que são filhos únicos.Seletores de Placeholder (
::placeholder): Selecionam a pseudo-elemento placeholder de um elemento de input. Por exemplo,input::placeholder { color: #999; }aplicará uma cor cinza ao texto de espaço reservado de todos os campos de input.Seletores de Visibilidade (
:visible,:hidden): Selecionam elementos com base em sua visibilidade na página. Por exemplo,div:visible { border: 1px solid green; }aplicará uma borda verde a todas as divs visíveis.Seletores de Língua (
:lang()): Selecionam elementos com base no idioma especificado. Por exemplo,p:lang(fr) { font-style: italic; }aplicará estilo itálico a todos os parágrafos em francês.Seletores de Foco (
:focus): Selecionam elementos que estão atualmente em foco, geralmente usado para estilizar links ou campos de formulário quando estão sendo interagidos. Por exemplo,input:focus { border: 2px solid blue; }aplicará uma borda azul ao campo de input em foco.Seletores de Raiz (
:root): Selecionam o elemento raiz do documento, geralmente usado para definir variáveis CSS globais. Por exemplo,:root { --cor-destaque: #ff9900; }define uma variável global de cor.Seletores de Ação (
:hover,:active,:visited): Seletores que correspondem a elementos em diferentes estados de interação do usuário. Por exemplo,a:hover { text-decoration: underline; }aplicará um sublinhado a links quando o mouse estiver sobre eles.Seletores de Notificação (
::before,::after): Permitem adicionar conteúdo antes (::before) ou depois (::after) do conteúdo real do elemento. Isso é frequentemente usado para inserir ícones ou decorações. Por exemplo,p::before { content: "🔗"; }adicionará um emoji de link antes de todos os parágrafos.Seletores de Grid (
:nth-row,:nth-column): Utilizados em layouts de grade, esses seletores ajudam a estilizar elementos com base em sua posição em linhas ou colunas da grade. Por exemplo,div:nth-row(odd) { background-color: #f0f0f0; }aplicará um fundo cinza claro a todas as linhas ímpares em um layout de grade.Seletores de Máscaras (
::mask,::mask-border): Permitem aplicar máscaras a elementos, úteis para efeitos de recorte ou sombreamento. Por exemplo,img::mask { mask-type: luminance; }aplicará uma máscara luminante a todas as imagens.Seletores de Estado de Validação (
:valid,:invalid): Permitem estilizar elementos de formulário com base em seu estado de validação. Por exemplo,input:invalid { border: 2px solid red; }aplicará uma borda vermelha a campos de formulário inválidos.Seletores de Contagem (
:nth-of-type(),:last-of-type): Selecionam elementos com base em sua posição relativa a outros elementos do mesmo tipo. Por exemplo,ul li:nth-of-type(3) { color: red; }aplicará cor vermelha ao terceiro item de lista em uma lista não ordenada.Seletores de Orientação (
:landscape,:portrait): Permitem estilizar elementos com base na orientação da tela. Por exemplo,@media (orientation: landscape) { /* estilos para orientação paisagem */ }aplicará estilos específicos quando a tela estiver na orientação paisagem.Seletores de Gradiente (
linear-gradient,radial-gradient): Não são seletores no sentido tradicional, mas são usados para criar fundos gradientes. Por exemplo,background: linear-gradient(to right, #ffcc00, #ff3300);criará um fundo com um gradiente de cores indo da esquerda para a direita.Seletores de Variáveis CSS (
var()): Permitem o uso de variáveis para valores CSS. Isso facilita a manutenção e a aplicação consistente de estilos. Por exemplo,color: var(--cor-destaque);usará a variável CSS--cor-destaquecomo a cor do texto.Seletores de Múltiplos Atributos (
[attr="value"][attr2="value2"]): Selecionam elementos que atendem a múltiplos critérios de atributos. Por exemplo,input[type="text"][required] { border: 1px solid red; }aplicará uma borda vermelha a campos de texto obrigatórios.Seletores de Negrito e Itálico (
:not(:link):not(:visited) { font-weight: bold; }): Usando negação, você pode estilizar links não visitados de forma diferente dos visitados. Por exemplo,a:not(:link):not(:visited) { font-weight: bold; }aplicará negrito apenas a links não visitados.Seletores de Combinadores (
+,~): Permitem selecionar elementos com base em sua relação com outros elementos no mesmo nível. Por exemplo,h2 + p { font-style: italic; }aplicará estilo itálico ao primeiro parágrafo após um título<h2>.Seletores de Herança (
inherit,initial,unset): Não são seletores de elementos, mas valores especiais usados para controlar a herança de propriedades CSS. Por exemplo,font-size: inherit;faz com que um elemento herde o tamanho de fonte de seu elemento pai.Seletores de Tamanho Relativo (
em,rem): Não são seletores, mas unidades que permitem estabelecer tamanhos relativos ao tamanho do texto. Por exemplo,font-size: 1.2em;aumentará o tamanho da fonte em 20% em relação ao tamanho do texto pai.Seletores de Opacidade (
:hover { opacity: 0.8; }): Permitem controlar a transparência de elementos. Por exemplo,:hover { opacity: 0.8; }tornará um elemento 20% mais transparente quando o mouse estiver sobre ele.Seletores de Opacidade (
:hover { opacity: 0.8; }): Permitem controlar a transparência de elementos. Por exemplo,:hover { opacity: 0.8; }tornará um elemento 20% mais transparente quando o mouse estiver sobre ele.Seletores de Transições (
transition): Permitem suavizar mudanças de propriedades ao longo do tempo. Por exemplo,transition: width 0.3s ease-in-out;aplicará uma transição suave à largura de um elemento.Seletores de Animações (
@keyframes,animation): Permitem criar animações personalizadas. Por exemplo, usando@keyframespara definir uma sequência de estados eanimationpara aplicar essa animação a um elemento específico.Seletores de Filtros (
filter): Permitem aplicar efeitos de filtro a elementos, como desfoque, escala de cinza ou ajuste de cor. Por exemplo,filter: grayscale(50%);aplicará um efeito de escala de cinza de 50% a um elemento.Seletores de Pseudo-elementos de Rato (
:hover,:active,:focus): Permitem estilizar elementos com base nas interações do mouse. Por exemplo,button:hover { background-color: #ffcc00; }aplicará uma cor de fundo quando o botão for hover.Seletores de Trabalhador de Fundo (
::after,::before): Permitem adicionar conteúdo gerado no lado do cliente. Por exemplo,button::before { content: "🛒"; }adicionará um carrinho de compras antes do conteúdo de cada botão.Seletores de Visibilidade (
:visible,:hidden): Selecionam elementos com base em sua visibilidade na página. Por exemplo,div:visible { border: 1px solid green; }aplicará uma borda verde a todas as divs visíveis.Seletores de Múltiplos Atributos (
[attr="value"][attr2="value2"]): Selecionam elementos que atendem a múltiplos critérios de atributos. Por exemplo,input[type="text"][required] { border: 1px solid red; }aplicará uma borda vermelha a campos de texto obrigatórios.Seletores de Desfoque (
:focus-visible): Seletor que aplica estilos apenas quando o elemento está focalizado e a focalização não é feita usando o mouse. Útil para melhorar a experiência do usuário em dispositivos com navegação por teclado.Seletores de Links (
:link,:visited): Permitem diferenciar entre links não visitados e visitados. Por exemplo,a:visited { color: purple; }aplicará uma cor roxa aos links visitados.Seletores de Gradiente (
linear-gradient,radial-gradient): Não são seletores no sentido tradicional, mas são usados para criar fundos gradientes. Por exemplo,background: linear-gradient(to right, #ffcc00, #ff3300);criará um fundo com um gradiente de cores indo da esquerda para a direita.Seletores de Texto (
::selection): Permitem estilizar o texto selecionado pelo usuário. Por exemplo,::selection { background-color: #a8dadc; color: #1d3557; }definirá as cores de fundo e texto para o texto selecionado.Seletores de Ordem (
order): Não é um seletor em si, mas uma propriedade CSS que afeta a ordem de exibição dos itens em um layout flexível ou de grade. A propriedadeorderpode ser usada para reorganizar visualmente os elementos na tela.Seletores de Visibilidade (
:focus-within): Selecionam um elemento quando ele ou um de seus descendentes está em foco. Útil para aplicar estilos a um contêiner quando qualquer parte dele está sendo interagida.Seletores de Lista (
:first-child,:last-child): Permitem selecionar o primeiro ou o último filho de um elemento pai. Por exemplo,li:first-child { font-weight: bold; }aplicará negrito apenas ao primeiro item de uma lista.Seletores de Resolução de Tela (
@media): Não são seletores específicos, mas media queries usando@mediaque permitem aplicar estilos com base nas características do dispositivo, como largura da tela, orientação, resolução, entre outros.Seletores de Preenchimento (
:empty): Selecionam elementos que não têm filhos. Por exemplo,div:empty { border: 2px dashed red; }aplicará uma borda pontilhada vermelha a divs vazias.Seletores de Negrito e Itálico (
:not(:link):not(:visited) { font-weight: bold; }): Usando negação, você pode estilizar links não visitados de forma diferente dos visitados. Por exemplo,a:not(:link):not(:visited) { font-weight: bold; }aplicará negrito apenas a links não visitados.Seletores de Combinadores (
+,~): Permitem selecionar elementos com base em sua relação com outros elementos no mesmo nível. Por exemplo,h2 + p { font-style: italic; }aplicará estilo itálico ao primeiro parágrafo após um título<h2>.Seletores de Herança (
inherit,initial,unset): Não são seletores de elementos, mas valores especiais usados para controlar a herança de propriedades CSS. Por exemplo,font-size: inherit;faz com que um elemento herde o tamanho de fonte de seu elemento pai.Em suma é isso, acabei de elaborar está matéria pensando em você que quer realmente começa em programação.
