Exemplo HTML
<ul> <li><a href="#top">TOP</a></li> <li><a href="https://developer.mozilla.org">mozilla</a></li> <li><a href="https://example.com">example</a></li> <li><a href="https://www.yahoo.co.jp">yahoo</a></li></ul>Seletores de atributo básicos
/* Prefixo: começa com "#" */a[href^="#"] { color: fuchsia;}
/* Sufixo: termina com ".org" */a[href$=".org"] { color: orange;}
/* Substring: contém "example" */a[href*="example"] { color: red;}
/* Condição composta: começa com "https" e termina com ".jp" */a[href^="https"][href$=".jp"] { color: green;}Lista de seletores
| Seletor | Significado |
|---|---|
[attr] | O atributo existe |
[attr="value"] | Correspondência exata com value |
[attr^="value"] | Começa com value |
[attr$="value"] | Termina com value |
[attr*="value"] | Contém value |
Ignorar maiúsculas e minúsculas (flag i)
Adicionando i ao final, a correspondência passa a ser insensível a maiúsculas e minúsculas.
/* Corresponde tanto a ".pdf" quanto a ".PDF" */a[href$=".pdf" i]::after { content: " (PDF)";}Combinação com :not()
/* Aplica apenas a links externos (http/https) */a[href^="http"]::after { content: " ↗";}
/* Exclui links internos (#) */a[href^="http"]:not([href*="example.com"])::after { content: " ↗";}Exemplo prático: ícones por tipo de arquivo
/* Adiciona rótulo a links PDF */a[href$=".pdf" i]::after { content: " [PDF]"; font-size: 0.75em; color: #c00;}
/* Ícone de seta para links externos */a[href^="https://"]:not([href^="https://example.com"])::after { content: " ↗";}
/* Links âncora sem estilo */a[href^="#"] { text-decoration: none;}Especificidade
A especificidade do seletor de atributo é a mesma do seletor de classe: (0, 1, 0).
a[href^="#"] { } /* (0, 1, 0) — equivalente a classe */a.internal { } /* (0, 1, 1) — classe + elemento, este vence */
hsb.horse