Aguarde...

29 de abril de 2023

Explorando :has() Novamente

Explorando :has() Novamente

Já faz um tempo desde o meu último artigo aqui (bem, um mês é um tempo para mim, de qualquer maneira 😅), pois estive ocupado com minha cabeça baixa preparando minha palestra sobre layout CSS moderno no Beyond Tellerand , que é ( verifica notas ) amanhã!

Embora eu não tenha tido muito tempo para blogs, isso me deu a chance de mergulhar mais uma vez nas mensagens sobre o layout CSS e a :has()pseudo-classe, ou “seletor pai”. 

Mas o que estou percebendo enquanto continuo a brincar :has()é que, na prática, podemos selecionar qualquer elemento no DOM em relação a outro, desde que compartilhem um ancestral comum — o que deveriam, certo? Como qualquer elemento que queremos selecionar terá o <body>como seu ancestral. Isso o torna bastante poderoso.

Então, aqui estão algumas demos para esse efeito. (Você precisará visualizá-los em um navegador compatível :has(), por exemplo, Chrome ou Safari.) Neste, passar o mouse sobre um item da lista à esquerda anima nossas faixas de grade à direita. Eles compartilham um elemento wrapper comum como ancestral, mas não necessariamente.

Nesta segunda demonstração, estamos adicionando uma cor de fundo ao <section>elemento visado por um link em outro <section>ao passar o mouse ou clicar. Esta é talvez uma demonstração um tanto boba, mas posso ver alguns casos de uso em potencial, como fornecer uma pista visual para os usuários quanto à seção de destino de um documento.

Por fim, esta demonstração (melhor visualizada no desktop) abre um painel (usando faixas de grade animadas) quando o usuário clica no link à esquerda. O destino do link está oculto no painel recolhido. (Ele também combina consultas de contêiner para o conteúdo à direita.) Ocultar e revelar conteúdo geralmente é algo que deve ser feito com JS, e provavelmente há alguns problemas de acessibilidade aqui – não estou sugerindo que você deva fazer algo assim na produção . Mas é interessante ver o poder do CSS hoje!

Postado em BlogTags:
Escreva um comentário