La superposition de plusieurs images pour créer un effet visuellement attrayant est une tâche courante dans la conception Web. Bien qu'il existe différentes approches pour y parvenir, CSS fournit une solution simple qui permet un positionnement flexible des images et un empilement dynamique des images.
Présentation du code
L'extrait de code suivant démontre une méthode pour superposer des images en ligne :
<code class="css">.avatars { display: inline-flex; flex-direction: row-reverse; } .avatar { position: relative; border: 4px solid #fff; border-radius: 50%; overflow: hidden; width: 100px; } .avatar:not(:last-child) { margin-left: -60px; } .avatar img { width: 100%; display: block; } </code>
<code class="html"><div class="avatars"> <span class="avatar"> <img src="image1.jpg"> </span> <span class="avatar"> <img src="image2.jpg"> </span> <span class="avatar"> <img src="image3.jpg"> </span> </div></code>
Explication
Dans cette approche, nous utilisons flexbox pour aligner les images horizontalement dans l'ordre inverse. Cela garantit que la dernière image est positionnée en bas de la pile, tandis que la première image est positionnée en haut.
Chaque élément .avatar représente une image et est positionné de manière relative. En définissant la propriété overflow sur masqué, nous empêchons les images de s'étendre au-delà de leur conteneur parent. La propriété border ajoute une bordure blanche autour de chaque image.
La propriété margin-left sur tous les éléments .avatar est définie sur -60px à l'exception du dernier élément. Cela crée un effet de chevauchement négatif entre les images, donnant l'impression d'un empilement.
Les images de chaque élément .avatar sont affichées sous forme de blocs et mises à l'échelle pour s'adapter à la largeur du conteneur. En utilisant width : 100% sur les images, nous nous assurons que le rapport hauteur/largeur de chaque image est préservé.
Avantages
Variations
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!