Comment adapter un div à la taille de son image de fond ?
Bonjour, j'ai plusieurs balises <div> qui ont des images de fond avec background-image:url();et background-repeat:no-repeat;.
Comment puis-je faire pour adapter automatiquement la taille des <div> à la taille des images de fond, sachant que je ne connais pas préalablement la taille de ces images ? Je ne peux donc pas utiliser width et height, merci.
Je ne pense pas qu'il y ait une solution native en CSS pour adapter automatiquement une balise <div> à la taille de son image de fond. Il va falloir feinter quelque peu.
L'une des solutions est de positionner la même image que celle de fond, dans le conteneur, puis ne pas l'afficher, via la propriété CSS visibility.
Attention cependant : cette méthode permet d'adapter la hauteur du conteneur mais pas sa longueur.
Dans l'exemple ci-dessous on crée deux CLASS CSS, conteneur qui s'applique au conteneur, la balise <div> ; puis image qui s'applique à l'image invisible.
La CLASS
conteneurqui affiche l'image de fond via les propriétébackground-imageetbackground-repeatavec la valeurno-repeatpour que l'image ne se répète pas et s'affiche qu'une seule fois.La CLASS
imagepermet de rendre l'image invisible, pour cela on utilise la propriétévisibilityavec la valeurhidden.
Exemple :
<!DOCTYPE HTML>
<html>
<head>
<meta charset="UTF-8">
<title>Comment adapter un div à la taille de son image de fond ?</title>
</head>
<body>
<style>
.conteneur {
background-image: url(https://www.collaborativejob.com/os.jpg);
background-repeat: no-repeat;
}
.image {
visibility: hidden;
}
</style>
<div class="conteneur">
<img src="https://www.collaborativejob.com/os.jpg" class="image" alt="">
</div>
</body>
</html>