Selectores de elementos 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-destaque
como 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@keyframes
para definir uma sequência de estados eanimation
para 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 propriedadeorder
pode 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@media
que 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.