j'ai
body {
background: url(images/background.svg);
}
L'effet souhaité est que cette image d'arrière-plan aura une largeur égale à celle de la page, la hauteur changeant pour maintenir la proportion. Par exemple, si l'image d'origine se trouve être 100 * 200 (toutes les unités) et que le corps a une largeur de 600 pixels, l'image d'arrière-plan devrait finir à 1200 pixels de haut. La hauteur doit changer automatiquement si la fenêtre est redimensionnée. Est-ce possible?
Pour le moment, Firefox semble ajuster la hauteur, puis ajuster la largeur. Est-ce peut-être parce que la hauteur est la dimension la plus longue et qu'elle essaie d'éviter le recadrage? Je veux recadrer verticalement, puis faire défiler: pas de répétition horizontale.
En outre, Chrome place l'image au centre, sans répétition, même lorsqu'elle background-repeat:repeat
est donnée explicitement, ce qui est de toute façon la valeur par défaut.
html, body { height: 100%; }
aide? Aussi, tousse .Réponses:
Il existe une propriété CSS3 pour cela, à savoir
background-size
( vérification de compatibilité ). Bien que l'on puisse définir des valeurs de longueur, il est généralement utilisé avec les valeurs spécialescontain
etcover
. Dans votre cas spécifique, vous devez utilisercover
:Eggsplanation pour
contain
etcover
Désolé pour le mauvais jeu de mots, mais je vais utiliser l' image du jour par Biswarup Ganguly pour la démonstration. Disons que c'est votre écran et que la zone grise est en dehors de votre écran visible. Pour démonstration, je vais supposer un ratio 16x9.
Nous voulons utiliser l'image de la journée susmentionnée comme arrière-plan. Cependant, nous avons recadré l'image en 4x3 pour une raison quelconque. Nous pourrions définir la
background-size
propriété sur une longueur fixe, mais nous nous concentrerons surcontain
etcover
. Notez que je suppose également que nous n'avons pas modifié la largeur et / ou la hauteur debody
.contain
Cela garantit que l'image d'arrière-plan est toujours complètement contenue dans la zone de positionnement d'arrière-plan, cependant, il pourrait y avoir un espace vide rempli avec votre
background-color
dans ce cas:cover
Cela garantit que l'image d'arrière-plan couvre tout. Il n'y aura pas de visibilité
background-color
, mais selon le rapport de l'écran, une grande partie de votre image pourrait être coupée:Démonstration avec le code réel
la source
-webkit-
préfixe?background-size: contain
contain
c'est comme le zoom.cover
c'est comme un zoom.contain
ajuste la taille de l'image pour correspondre à la plus grande dimension parmi la largeur et la hauteur.cover
ajuste la taille de l'image pour correspondre à la plus petite dimension parmi la largeur et la hauteur.Sur la base des conseils de https://developer.mozilla.org/en-US/docs/CSS/background-size, je me retrouve avec la recette suivante qui a fonctionné pour moi
la source
background-position: center;
, cela a fonctionné mieux pour moi quebackgound-size: cover;
.overflow-y: hidden
pièce?Je ne sais pas exactement ce que vous cherchez, mais vous devriez vraiment consulter ces excellents articles de blog écrits par Chris Coyier de CSS-Tricks:
http://css-tricks.com/how-to-resizeable-background-image/
http://css-tricks.com/perfect-full-page-background-image/
Lisez les descriptions de chacun des articles et voyez s'ils correspondent à ce que vous recherchez.
Le premier répond à la question suivante:
L'objectif du deuxième article est d'obtenir ce qui suit, une «image d'arrière-plan sur un site Web qui couvre à tout moment la fenêtre entière du navigateur».
J'espère que cela t'aides.
la source
L'image d'arrière-plan n'est pas définie parfaite, puis son fichier CSS est un problème à créer, donc son fichier CSS passe au code ci-dessous
%; taille de l'arrière-plan: 100% 100%; "
la source
Essaye ça,
la source
Ajoutez simplement cette ligne:
vh est la hauteur de la fenêtre. Cela s'adaptera automatiquement à la fenêtre du navigateur de l'appareil.
Vérifiez plus ici: Faites div 100% de la hauteur de la fenêtre du navigateur
la source
la source
J'ai eu le même problème, impossible de redimensionner l'image lors du réglage des dimensions du navigateur.
Mauvais code:
Bon code:
La clé ici est l'ajout de cet élément -> background-size: contain;
la source
Voici ce qui a fonctionné pour moi:
la source
La définition de la taille de l'arrière-plan n'aide pas, la solution suivante a fonctionné pour moi:
Il recadre l'image et la fait s'intégrer,
background-size: contain/cover
mais ne l'a toujours pas adaptée.la source