Remplir une image
Voici comment utiliser le CSS et le rapport d’aspect pour centrer et remplir une image :
- Tout d’abord, vous devez envelopper votre image dans un élément conteneur, tel qu’un
<div>
ou une<figure>
. Cela vous permettra d’appliquer des styles au conteneur qui affecteront l’image à l’intérieur. - Définissez la propriété
position
du conteneur surrelative
. Cela vous permettra de positionner l’image à l’intérieur du conteneur. - Ajoutez un pseudo-élément
::after
au conteneur. Cela sera utilisé pour maintenir le rapport d’aspect de l’image et créer le remplissage. - Définissez la propriété
content
du pseudo-élément::after
sur une chaîne vide. Ceci est nécessaire pour créer l’élément. - Définissez la propriété
padding-bottom
du pseudo-élément::after
sur une valeur en pourcentage qui correspond au rapport d’aspect de l’image. Par exemple, si votre image a un rapport d’aspect de 4:3, vous définiriez le remplissage à75%
(puisque 3/4 = 0,75). Cela créera le remplissage sous l’image. - Définissez la propriété
position
du pseudo-élément::after
surabsolute
. Cela positionnera l’élément dans le conteneur. - Définissez les propriétés
top
,left
,bottom
etright
du pseudo-élément::after
sur0
. Cela fera en sorte que l’élément remplisse le conteneur, créant le remplissage. - Enfin, définissez la propriété
position
de l’image elle-même surabsolute
. Cela vous permettra de centrer l’image à l’intérieur du conteneur en utilisant les propriétéstop
,left
,bottom
etright
.
Voici un exemple de code CSS que vous utiliseriez pour centrer et remplir une image avec un rapport d’aspect de 4:3 :
.container {
position: relative;
width: 100%;
}
.container::after {
content: "";
display: block;
padding-bottom: 75%; /* rapport d'aspect 4:3 */
position: absolute;
top: 0;
left: 0;
bottom: 0;
right: 0;
}
img {
position: absolute;
top: 0;
left: 0;
bottom: 0;
right: 0;
margin: auto;
max-width: 100%;
max-height: 100%;
}
Dans cet exemple, l’élément .container
est le conteneur pour l’image. Le pseudo-élément ::after
est utilisé pour créer le remplissage et maintenir le rapport d’aspect de l’image. L’élément img
est défini sur position: absolute
afin qu’il puisse être centré à l’intérieur du conteneur en utilisant les propriétés top
, left
, bottom
et right
.
En définissant les propriétés max-width
et max-height
de l’image sur 100%
, l’image s’adaptera à l’espace disponible tout en maintenant son rapport d’aspect. Cela signifie que le remplissage créé par le pseudo-élément ::after
sera toujours proportionnel à la taille de l’image.