Seletores de Atributos CSS

CSS
Tempo de leitura: 3 minutos

Seletores de Atributos CSS: Os Seletores de Atributos são uma extensão poderosa dos Seletores CSS, permitindo que você aplique estilos a elementos HTML não apenas por seu nome de tag, Classe ou ID, mas com base na presença ou no valor de qualquer um de seus atributos.

Essa funcionalidade é indispensável para estilizar campos de formulário, links específicos, ou elementos que usam atributos de dados customizados (data-*).

Neste artigo, vamos desvendar os diferentes operadores de Seletores de Atributos e como utilizá-los para criar estilos precisos e dinâmicos.

1. O Conceito e a Especificidade

Os Seletores de Atributos são definidos por colchetes [] e sempre adicionam a mesma pontuação de Especificidade de um Seletor de Classe (0, 0, 1, 0), independentemente da complexidade do valor buscado.

Sintaxe Básica (Presença)

O seletor mais simples verifica se o atributo existe, independentemente do seu valor:

CSS

/* Seleciona todos os elementos 'input' que possuem o atributo 'required' */
input[required] { 
  border: 2px solid red; 
}

2. Operadores de Correspondência de Valor

O poder dos Seletores de Atributos reside nos operadores que verificam se o valor do atributo corresponde a um padrão específico:

OperadorExemploSignificadoCaso de Uso Comum
[attr="val"]img[alt="logo"]Valor exatamente igual.Estilizar um único elemento sem usar ID.
[attr^="val"]a[href^="https://"]Valor começa com a string.Estilizar todos os links seguros (HTTPS).
[attr$="val"]a[href$=".pdf"]Valor termina com a string.Estilizar links que levam a arquivos específicos.
[attr*="val"]a[href*="google"]Valor contém a string em qualquer lugar.Estilizar todos os links de um domínio específico.
[attr~="val"]p[class~="destaque"]Valor contém a string como uma palavra inteira separada por espaço.Usado para seleção em listas ou classes (melhor usar o seletor de classe .destaque).

Exemplo de Uso com Formulários e Links

CSS

/* 1. Estiliza inputs de e-mail (operador de valor exato) */
input[type="email"] { 
  background-color: lightyellow; 
}

/* 2. Estiliza links que apontam para fora do domínio (começa com http:// ou https://) */
a[href^="http"]:not([href*="meudominio.com"]) { 
  font-weight: bold;
}

3. O Uso Moderno: Atributos de Dados (data-*)

A aplicação mais comum e poderosa dos seletores de atributos modernos é com os atributos de dados customizados introduzidos no HTML5.

  • Os atributos data-* permitem armazenar dados extras sobre um elemento diretamente no HTML.

HTML

<button data-status="pending">Aguardando Aprovação</button>
<button data-status="approved">Aprovado</button>

Você pode estilizar dinamicamente o elemento baseado no status, sem precisar adicionar ou remover classes:

CSS

/* Estiliza o botão com status 'pending' */
button[data-status="pending"] {
  background-color: orange;
  color: white;
}

/* Estiliza o botão com status 'approved' */
button[data-status="approved"] {
  background-color: green;
  color: white;
}

4. Combinando Seletores de Atributos

Assim como qualquer outro seletor, os seletores de atributos podem ser combinados para criar regras altamente específicas:

CSS

/* Seleciona o elemento 'a' que tem a classe '.arquivo' E que termina com .pdf */
a.arquivo[href$=".pdf"] {
  padding-left: 20px;
  background-image: url('icone-pdf.svg');
}

✅ Conclusão Seletores de Atributos CSS

Os Seletores de Atributos CSS são ferramentas versáteis que oferecem um controle de estilização que vai além das classes e IDs. Eles são indispensáveis para trabalhar com formulários, links, e especialmente com atributos de dados customizados (data-*), permitindo que você crie estilos dinâmicos e altamente manuteníveis. Ao usar esses seletores, lembre-se que eles possuem a mesma pontuação de Especificidade de uma Classe (0, 0, 1, 0).

Toda jornada tem um início, e o início para se tornar um desenvolvedor web é dominar as seguintes tecnologias, que você encontra aqui mesmo:

HTML
HTML
CSS
CSS
Javascript
JavaScript

E se você gosta do nosso conteúdo, não deixe de contribuir adquirindo os serviços e produtos dos nossos apoiadores e empresas que somos associados:

Hospedagem Hostinger
Ofertas Amazon
Amazon Prime
Author: Thiago Rossi
Com mais de 20 anos de jornada na tecnologia, minha trajetória evoluiu do ensino técnico à arquitetura de sistemas complexos. Hoje, foco minha expertise no desenvolvimento de soluções de Inteligência Artificial nativa e análise de dados públicos, utilizando o ecossistema PHP para transformar dados brutos em transparência e eficiência. Como autor e desenvolvedor, acredito na democratização do conhecimento. Essa visão resultou em uma biblioteca de mais de 530 artigos gratuitos, cobrindo desde a base do WebDev e Infraestrutura até os bastidores da indústria de Jogos e IA. No universo de Game Design, sou autor do livro "GDD – O Guia Definitivo" e documento ativamente meus processos através de DevLogs, unindo rigor técnico e criatividade em projetos desenvolvidos com GDevelop 5. Meu compromisso é conectar engenharia de ponta com as reais oportunidades do mercado de tecnologia.