"Se um trabalhador quiser fazer bem o seu trabalho, ele deve primeiro afiar suas ferramentas." - Confúcio, "Os Analectos de Confúcio. Lu Linggong"
Primeira página > Programação > Por que CSS `visibility: hidden` falha nos efeitos de foco?

Por que CSS `visibility: hidden` falha nos efeitos de foco?

Publicado em 17/11/2024
Navegar:162

Why Does CSS `visibility: hidden` Fail for Hover Effects?

Desvendando o mistério: por que a visibilidade do CSS falha ao pairar

A visibilidade do CSS oferece uma maneira conveniente de manipular a visibilidade do elemento, mas às vezes ela se depara obstáculos inesperados. Considere um cenário em que você definiu uma classe "spoiler" para tornar o texto invisível inicialmente e revelá-lo ao passar o mouse. Apesar de suas expectativas, o texto persiste teimosamente em seu estado oculto, desafiando seus esforços de pairar.

Mergulhando na Causa

O culpado por trás desse comportamento desconcertante está na natureza de elementos ocultos. Quando um elemento é oculto usando visibilidade: oculto, ele se torna efetivamente invisível e não ocupa espaço no layout da página. Isso significa que tentar pairar sobre ele é essencialmente como tentar interagir com o vazio. O elemento simplesmente não registra a ação de pairar.

Resolvendo o dilema da visibilidade

Para superar esse obstáculo, você precisa fornecer ao elemento uma maneira de permanecer visível mesmo quando seu conteúdo está oculto. Uma abordagem é aninhar o elemento dentro de outro contêiner que possa receber o evento hover. Veja como você pode conseguir isso:

CSS:

.spoiler span {
    visibility: hidden;
}

.spoiler:hover span {
    visibility: visible;
}

HTML:

Spoiler: E.T. phones home.

Explicação:

Ao aninhar o texto oculto em um elemento span, você garante que o elemento spoiler externo permaneça visível , permitindo capturar o evento de foco. Quando o foco ocorre, o elemento span interno fica visível, revelando o texto do spoiler.

Considerações Adicionais

Em certos navegadores como o Chrome, você pode encontrar um pequeno problema em que o elemento spoiler oculto ainda pode ser ligeiramente selecionável com o mouse. Para resolver isso, você pode adicionar um esboço ao elemento spoiler:

.spoiler {
    outline: 1px solid transparent;
}

Este contorno transparente garante que o elemento spoiler tenha tamanho suficiente para receber o evento hover sem prejudicar a visibilidade geral do texto.

Com esses ajustes, sua classe spoiler funcionará perfeitamente, preservando a invisibilidade do texto oculto e proporcionando uma experiência de flutuação perfeita.

Tutorial mais recente Mais>

Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.

Copyright© 2022 湘ICP备2022001581号-3