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:



  1. Seletores Universais (*): Aplicam estilos a todos os elementos na página. Por exemplo, * { margin: 0; padding: 0; } zera as margens e preenchimentos padrão.

  2. 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.

  3. 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".

  4. 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".

  5. 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>.

  6. 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>).

  7. 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.

  8. 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 e animation 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 propriedade order 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.

Next Post Previous Post