Seletores de atributo
Como você sabe de seu estudo de HTML, os elementos podem ter atributos que fornecem mais detalhes sobre o elemento que está sendo marcado. Em CSS, você pode usar seletores de atributo para direcionar elementos com determinados atributos. Esta lição mostrará como usar esses seletores que são muito úteis.
| Pré-requisitos: | Conhecimentos básicos em informática, software básico instalado, conhecimentos básicos de trabalhando com arquivos, Basico de HTML (Estude Introdução para o HTML), e uma ideia de como CSS funciona (Estude CSS primeiros paços.) | 
|---|---|
| Objetivo: | Entender o que são seletores de atributo e como usa-los. | 
Seletores de Presença e Valor
Esses seletores permitem a seleção de um elemento com base na presença de um atributo sozinho (por exemplo, href) ou em várias correspondências diferentes com o valor do atributo.
| Seletor | Exemplo | Descrição | 
|---|---|---|
| [attr] | a[title] | Corresponde a elementos com um atributo attr (cujo nome é o valor entre colchetes). | 
| [attr=value] | a[href="https://example.com"] | Corresponde a elementos com um atributo attr cujo valor é exatamente value - a string entre aspas. | 
| [attr~=value] | p[class~="special"] | Corresponde a elementos com um atributo attr cujo valor é exatamente value, ou contém valor em sua lista de valores (separados por espaço). | 
| [attr|=value] | div[lang|="zh"] | Corresponde a elementos com um atributo attr cujo valor é exatamente value ou começa com value imediatamente seguido por um hífen. | 
No exemplo abaixo você pode ver esses seletores sendo usados.
- usando li[class]podemos combinar qualquer seletor com um atributo de classe. Isso corresponde a todos os itens da lista, exceto o primeiro.
- li[class="a"]corresponde a um seletor com uma classe de a, mas não a um seletor com uma classe de a com outra classe separada por espaço como parte do valor. Ele seleciona o segundo item da lista.
- li[class~="a"]corresponderá a uma classe de a, mas também a um valor que contém a classe de a como parte de uma lista separada por espaços em branco. Ele seleciona o segundo e o terceiro itens da lista.
Seletores de SubString
Esses seletores permitem uma correspondência mais avançada de substrings dentro do valor do seu atributo. Por exemplo, se você tivesse classes de box-warning e box-error e quisesse combinar tudo que começou com a string "box-", você poderia usar [class^="box-"] para selecionar os dois (ou [class|="box"] como descrito abaixo).
| Seletor | Exemplo | Descrição | 
|---|---|---|
| [attr^=value] | li[class^="box-"] | Corresponde a elementos com um atributo attr (cujo nome é o valor entre colchetes), cujo valor começa com valor. | 
| [attr$=value] | li[class$="-box"] | Corresponde a elementos com um atributo attr cujo valor termina com valor. | 
| [attr*=value] | li[class*="box"] | Corresponde a elementos com um atributo attr cujo valor contém o valor em qualquer lugar dentro da string. | 
(À parte/lado: pode ser útil notar que ^ e $ há muito são usados como âncoras nas chamadas expressões regulares para significar que começa com e termina com.)
O próximo exemplo mostra o uso desses seletores:
- li [class ^ = "a"] corresponde a qualquer valor de atributo que comece com a, portanto, corresponde aos dois primeiros itens da lista.
- li [class $ = "a"] corresponde a qualquer valor de atributo que termina com a, portanto, corresponde ao primeiro e terceiro item da lista.
- li [class * = "a"] corresponde a qualquer valor de atributo onde a apareça em qualquer lugar na string, portanto, corresponde a todos os itens da nossa lista
Sensibilidade à maiúsculas
Se você deseja combinar valores de atributo sem distinção entre maiúsculas e minúsculas, você pode usar o valor i antes do colchete de fechamento. Este sinalizador informa ao navegador para corresponder caracteres ASCII sem distinção entre maiúsculas e minúsculas. Sem o sinalizador, os valores serão correspondidos de acordo com a distinção entre maiúsculas e minúsculas do idioma do documento - no caso do HTML, será sensível a maiúsculas e minúsculas.
No exemplo abaixo, o primeiro seletor corresponderá a um valor que começa com um - ele corresponde apenas ao primeiro item da lista porque os outros dois itens da lista começam com um A maiúsculo. O segundo seletor usa o sinalizador que não diferencia maiúsculas de minúsculas e, portanto, corresponde a todos os itens da lista.
Nota:
Há tambem um valor mais novo s, que forçará a correspondência com distinção entre maiúsculas e minúsculas em contextos em que a correspondência normalmente não diferencia maiúsculas de minúsculas; no entanto, isso não é bem suportado em navegadores e não é muito útil em um contexto HTML.
Próximos passos
Agora que terminamos com os seletores de atributo, você pode continuar no próximo artigo e ler sobre pseudo-class and pseudo-element selectors.
page(Doc) not found /pt-BR/docs/Learn/CSS/Building_blocks/Selectors/Pseudo-classes_and_pseudo-elements