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 :
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!