Maison  >  Article  >  interface Web  >  Comment puis-je masquer et afficher du contenu en CSS sans utiliser JavaScript ?

Comment puis-je masquer et afficher du contenu en CSS sans utiliser JavaScript ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-10-29 00:37:30359parcourir

How Can I Hide and Show Content in CSS Without Using JavaScript?

Masquer et afficher le contenu avec CSS, aucun JavaScript requis

Dans la recherche d'une interface utilisateur propre et efficace, il est essentiel d'avoir le possibilité de masquer et d'afficher du contenu. Traditionnellement, JavaScript est la solution privilégiée pour cette tâche. Cependant, l'utilisation de CSS offre une alternative plus simple et plus performante.

Tentative initiale

Une approche possible en utilisant CSS consiste à utiliser la pseudo-classe ':focus'. Examinons l'extrait CSS d'origine fourni :

<code class="css">#cont {
  display: none;
}
.show:focus + .hide {
  display: inline;
}
.show:focus + .hide + #cont {
  display: block;
}</code>

Problème rencontré

Bien que cette approche réussisse à masquer le contenu lorsque l'on clique sur le lien « Masquer », elle permet également le contenu à masquer en cliquant n’importe où sur la page. Ce comportement n'est pas souhaitable, car il diminue la fonctionnalité prévue du lien « Masquer ».

Solution améliorée

Pour résoudre ce problème, nous introduisons une structure CSS légèrement modifiée. :

<code class="css">body {
  display: block;
}
.span3:focus ~ .alert {
  display: none;
}
.span2:focus ~ .alert {
  display: block;
}
.alert {
  display: none;
}</code>

Fonctionnalité

Dans cette solution améliorée, la pseudo-classe ':focus' est appliquée à deux éléments, '.span3' et '.span2 ', qui représentent respectivement les liens 'Masquer' et 'Afficher'. Lorsque le lien « Masquer » (« .span3 ») obtient le focus, il masque l'élément avec la classe « .alert », qui contient le contenu masqué. À l'inverse, lorsque le lien « Afficher » ('.span2') obtient le focus, il affiche l'élément « .alert ».

Avantages

Cette approche offre plusieurs avantages :

  • Aucun JavaScript requis : Il repose uniquement sur CSS, ce qui le rend plus facile à mettre en œuvre et à maintenir.
  • Masquage ciblé : Le le contenu n'est masqué que lorsque vous cliquez sur le lien « Masquer », empêchant ainsi son masquage involontaire des autres interactions de la page.
  • Modifications minimes : Cela ne nécessite que des modifications mineures du CSS d'origine, préservant le comportement prévu .

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn