Published on

Existe um Seletor de Pai em CSS? Explorando o Pseudo-classe has() do CSS

Authors
  • avatar
    Name
    Yuri Magagnatto
    Twitter

Ao estilizar elementos em CSS, é comum desejar aplicar estilos com base em seus relacionamentos com outros elementos, como elementos pais. No entanto, o CSS tradicionalmente não fornece um seletor de pai direto. Neste artigo, vamos explorar se existe um seletor de pai em CSS e discutir uma alternativa poderosa: a pseudo-classe funcional :has().

Existe um Seletor de Pai em CSS?

Tradicionalmente, o CSS não possui um seletor direto para selecionar o pai de um elemento. Isso significa que não há um seletor CSS como ":parent" que permita selecionar um elemento pai diretamente. No entanto, o CSS oferece uma alternativa interessante e poderosa na forma da pseudo-classe funcional :has().

A Pseudo-classe :has() do CSS

A pseudo-classe funcional :has() permite selecionar um elemento com base na presença de um seletor específico em seu conteúdo. Isso significa que você pode usar :has() para selecionar um elemento pai com base nos elementos filhos que ele contém. Por exemplo:

/* Estiliza o elemento pai que contém um elemento filho com a classe 'destaque' */
.pai:has(.destaque) {
    /* Estilos para o elemento pai */
}

O seletor :has() é uma adição poderosa ao arsenal de seletores CSS e pode ser usado para estilizar elementos com base em seus relacionamentos com outros elementos.

Compatibilidade do Navegador

É importante observar que, atualmente, o suporte para a pseudo-classe :has() ainda está em desenvolvimento e não é amplamente suportado por todos os navegadores. No entanto, à medida que os navegadores continuam a evoluir e implementar novos recursos CSS, espera-se que o suporte para :has() se torne mais abrangente no futuro.


Embora o CSS tradicionalmente não tenha um seletor direto para selecionar o pai de um elemento, a pseudo-classe funcional :has() oferece uma alternativa poderosa. Ao usar :has(), você pode selecionar elementos pais com base nos elementos filhos que eles contêm, permitindo estilos mais granulares e precisos em suas páginas da web. Experimente :has() em seus projetos e descubra o potencial dessa poderosa ferramenta de seleção CSS!