Je travaille actuellement sur une page d'accueil mobile pour une entreprise. Il s'agit d'une mise en page très basique, mais sous l'en-tête se trouve l'image d'un produit qui aura toujours une largeur de 100% (le design montre qu'elle va toujours de bord à bord). En fonction de la largeur de l'écran, la hauteur de l'image s'adaptera évidemment en conséquence. À l'origine, j'ai utilisé un img (avec une largeur CSS de 100 %) et cela a très bien fonctionné, mais j'ai réalisé que j'aimerais utiliser des requêtes média pour afficher différentes images en fonction des résolutions - disons une petite, une moyenne et une grande version de la même image, par exemple. Je sais qu'il n'est pas possible de modifier le src de l'image avec CSS. Je me suis donc dit que je devais utiliser un arrière-plan CSS pour l'image plutôt qu'une balise img dans le code HTML.
Je n'arrive pas à le faire fonctionner correctement car le div avec l'image d'arrière-plan a besoin à la fois d'une largeur et d'une hauteur pour afficher l'arrière-plan. Je peux évidemment utiliser 'width : 100%' mais qu'est-ce que je dois utiliser pour la hauteur ? Je peux mettre une hauteur fixe aléatoire comme 150px et alors je peux voir les 150px supérieurs de l'image mais ce n'est pas la solution car il n'y a pas de hauteur fixe. Je me suis amusé et j'ai découvert qu'une fois qu'il y a une hauteur (testée avec 150px), je peux utiliser 'background-size : 100%' pour faire tenir l'image dans le div correctement. Je peux utiliser les CSS3 les plus récents pour ce projet, car il est destiné uniquement aux mobiles.
J'ai ajouté un exemple approximatif ci-dessous. Veuillez excuser les styles en ligne mais je voulais donner un exemple de base pour essayer de rendre ma question un peu plus claire.
<div id="image-container">
<div id="image" style="background: url(image.jpg) no-repeat; width: 100%; height: 150px; background-size: 100%;"></div>
</div>
Dois-je donner à la division conteneur un pourcentage de hauteur basé sur l'ensemble de la page ou est-ce que je me trompe complètement ?
Par ailleurs, pensez-vous que les arrière-plans CSS soient la meilleure façon de procéder ? Il existe peut-être une technique qui permet d'utiliser différentes balises img en fonction de la largeur de l'appareil ou de l'écran. L'idée générale est que le modèle de page d'accueil sera utilisé de nombreuses fois avec différentes images de produits. Je dois donc m'assurer que je le développe de la meilleure façon possible.
Je m'excuse si c'est un peu long, mais je suis en train de passer d'un projet à l'autre et j'aimerais que cette petite chose soit faite. Merci d'avance pour votre temps, c'est très apprécié. Salutations
0 votes
Un navigateur peut choisir de ne pas télécharger une ressource image s'il a le paramètre display : none, de sorte que vous pouvez toujours afficher différentes images avec des requêtes média sans JS.