Étirer et mettre à l'échelle une image CSS dans le fond - avec CSS
Je veux que mon image de fond d'étirement et de l'échelle en fonction de la taille de la fenêtre du navigateur.
J'ai vu quelques questions sur Pile Débordement de faire le travail, comme Étirer et de l'échelle de fond de CSS par exemple. Il fonctionne bien, mais je veux mettre l'image à l'aide de background
, pas avec un img
tag.
Dans un img
tag est placé, et puis avec CSS, nous hommage à la img
tag.
width:100%; height:100%;
Il fonctionne, mais que la question est un peu vieux, et les états qui en CSS 3 redimensionnement d'une image d'arrière-plan va fonctionner assez bien. J'ai essayé cette exemple le premier, mais ça n'a pas fonctionné pour moi.
Est-il une bonne méthode pour le faire avec le background-image
déclaration?
- background-size: 100% 100%;
- Peut-être que cette démonstration peut être utile: w3schools.com/cssref/...
- Double Possible de CSS image d'arrière-plan pour l'adapter à la largeur, de la hauteur de l'auto-échelle dans la proportion
- Ne devrait pas l'âge de la question être un facteur? Celui-ci a été demandé il y a 6 ans et la question que vous avez remarquer a demandé il y a 4 ans.
- À mon humble avis, nous ne voulons pas fermer la question avec les meilleures réponses et au lieu d'encourager les doublons lien vers celui-ci. Je suis sûr que cela aurait été discuté sur Meta, mais je ne peux pas le trouver maintenant...
- Bien sûr que non, moi non plus.
- Beaucoup de questions de ce genre flotter autour de SORTE. Dans celui-ci, c'est marrant le nombre de personnes qui commentent avec leur "grain de sel" sur
current
CSS3 solutions, et ne se rendent pas compte qu'il était demandé lors de la CSS3 n'était pas fortement de mettre en œuvre et standardisé dans les navigateurs. C'est sûrement un cri, plus de réponse actuelle. Il ya aussi un couple de plus de problèmes avec la question, en raison de ma compréhension de l'objet, sur le moment je l'ai écrit. - Demain je vais commencer une question sur meta.stackoverflow.com sur le meilleur plan d'action pour cette question, je vais poster le lien ici pour quiconque de le suivre. Merci pour l'entrée, toujours les bienvenus.
Vous devez vous connecter pour publier un commentaire.
CSS3 a une jolie petite attribut appelé
background-size:cover
.Cette échelle de l'image, de sorte que la zone d'arrière-plan est complètement recouverte par l'image d'arrière-plan tout en maintenant le ratio d'aspect. L'ensemble de la zone sera couverte. Toutefois, une partie de l'image peut ne pas être visible si la largeur/hauteur de l'image est trop grande.
background-size: 100vw 100vh;
fait le truc bien.background-size: cover; -ms-background-size: cover; -o-background-size: cover; -moz-background-size: cover; -webkit-background-size: cover;
background-size: 100% auto;
stackoverflow.com/questions/41025630/...background-size:cover
... N'oubliez pas d'utiliser des services comme ImageBoss pour générer vos images rapidement. Elle permettrait de réduire votre temps de chargement de la page considérablement la vitesse.Vous pouvez utiliser la propriété CSS3 pour faire assez bien. Il redimensionne ratio donc pas de distorsion de l'image (bien qu'il ne haut de gamme de petites images). Il suffit de noter, ce n'est pas implémenté dans tous les navigateurs encore.
background-image
et inclure la propriété ci-dessus. Tel que mentionné, la prise en charge du navigateur n'est pas encore bonne et il y a des navigateurs de versions de ce ie.-webkit-background-size
etc. Voir W3C CSS3 Module: background-size et css3.info: background-sizeauto
pour conserver les proportions.À l'aide de la code je l'ai mentionné...
HTML
CSS
Qui produit l'effet désiré: seul le contenu de défilement, pas le fond.
L'arrière-plan de l'image redimensionne la fenêtre d'affichage du navigateur pour la taille de l'écran. Lorsque le contenu n'est pas adapté au navigateur de la fenêtre d'affichage, et l'utilisateur doit faire défiler la page, l'image d'arrière-plan reste fixe dans la fenêtre d'affichage pendant que le contenu défile.
Avec CSS 3, il semble que ce serait beaucoup plus facile.
background : url("example.png");
) et à utiliser l'attribut cssbackground-size:100%;
dessous, nous l'espérons, de redimensionner l'image à la largeur de l'écran. Cela ne fonctionnera pas, il Sera? Si vous voulez mettre une image de fond pour le corps, puis une image de l'attribut doit être ajouté à l'étiquette comme<body background="example.png">
. Puis utiliser les cssbackground-size:100%;
de l'échelle.CSS:
html, body {...}
au lieu debody {...}
.s'étend de l'arrière-plan pour remplir l'ensemble de l'élément sur les deux axes.
Le code CSS suivant la partie devrait s'étirer l'image avec tous les navigateurs.
Je le faire dynamiquement pour chaque page. Donc j'utilise le PHP pour générer sa propre balise HTML pour chaque page. Toutes les photos sont dans "l'image" du dossier et à la fin avec "Bg.jpg'.
Si vous avez une seule image de fond pour toutes les pages, vous pouvez supprimer le
$pic
variable, supprimer échappement antislash, ajuster les chemins et placez ce code dans votre fichier CSS.Cela a été testé avec Internet Explorer 9, Chrome 21, et Firefox 14.
-webkit-background-size
,-moz-background-size
et ainsi de suite. Voir developer.mozilla.org/en-US/docs/CSS/... Ou vous allez pour les dont il de l'avenir dans d'abréviation de la propriété commebackground: url(img/bg-home.jpg) no-repeat center center / cover fixed;
Vous pouvez réellement obtenir le même effet que d'une image de fond avec la balise img. Il vous suffit de définir son z-index inférieur à tout le reste, position:absolute et d'utiliser un arrière-plan transparent pour chaque zone dans le premier plan.
Utiliser ce CSS:
Cela est expliqué par la CSS astuces: Parfait Full Page Image D'Arrière-Plan
Démo: https://css-tricks.com/examples/FullPageBackgroundImage/progressive.php
Code:
Vous pouvez ajouter cette classe dans votre fichier CSS.
Il travaille:
background-size
, mais pas les mots clés)Afin de redimensionner vos images correctement en fonction de la taille du récipient, utiliser les éléments suivants:
J'utilise cela, et il fonctionne avec tous les navigateurs:
Merci!
Mais alors, il n'a pas de travail pour le Google Chrome et Safari navigateurs (étirement travaillé, mais la taille des images n'était que de 2 mm!), jusqu'à ce que quelqu'un m'a dit ce qui manque:
Changer ainsi que pour votre
height:100%;
ligne, donne:Juste avant que le code nouvellement ajouté, j'ai ceci dans mon Drupal Tendu thèmes
style.css
:Puis-je faire un nouveau bloc à l'intérieur de Drupal avec l'image tout en ajoutant
class=stretch
:Juste de la copie d'une image avec l'éditeur dans Drupal bloc ne fonctionne pas; on doit changer l'éditeur de non-texte mis en forme.
Je suis d'accord avec l'image dans l'absolu div avec 100% de largeur et de hauteur. Assurez-vous de mettre 100% de la largeur et de la hauteur pour le corps dans la CSS et de définir les marges et padding à zéro. Une autre question que vous trouverez avec cette méthode est que lors de la sélection de texte, la zone de sélection peut parfois englober l'image d'arrière-plan, ce qui a malheureusement pour effet de rendre toute la page a l'état sélectionné. Vous pouvez contourner cela en utilisant le
user-select:none
règle CSS, comme ceci:Encore une fois, Internet Explorer est le méchant ici, parce qu'il ne reconnaît pas l'utilisateur-sélectionnez l'option - même pas Internet Explorer 10 aperçu prend en charge, donc vous avez l'option d'utiliser JavaScript pour empêcher image d'arrière-plan de sélection (par exemple, http://www.felgall.com/jstip35.htm ) ou à l'aide de CSS 3 de fond-étirement sur la méthode.
Aussi, pour SEO je mettrais l'image d'arrière-plan au bas de la page, mais si l'arrière-plan de l'image prend trop de temps à charger (c'est à dire avec un fond blanc au départ), vous pouvez déplacer vers le haut de la page.
J'ai voulu centrer et mettre à l'échelle une image d'arrière-plan, sans l'étirer pour l'ensemble de la page, et je voulais le ratio d'aspect pour être maintenu. Cela a fonctionné pour moi, merci pour les variations suggéré dans d'autres réponses:
IMAGE EN LIGNE: ------------------------
CSS ----------------------------------
J'ai utilisé une combinaison de l'arrière-plan (X propriétés CSS pour réaliser l'idéal de mise à l'échelle de l'image de fond.
Cela rend l'arrière-plan toujours de couvrir l'ensemble de la fenêtre du navigateur et reste centré lors de la mise à l'échelle.
Utiliser le Backstretch plugin. On pourrait même avoir plusieurs images de la diapositive. Il travaille également à l'intérieur des conteneurs. De cette façon, on pourra par exemple avoir seulement une partie de l'arrière-plan était recouvert d'une image d'arrière-plan.
Puisque même moi, je pourrais l'obtenir pour fonctionner prouve qu'il est un facile pour utiliser le plugin :).
Si vous voulez avoir le contenu centré horizontalement, d'utiliser une combinaison comme ceci:
Ce sera beau.
Utiliser ce CSS:
background-size: 100% 100%
Vous pouvez utiliser le
border-image : yourimage
de la propriété à l'échelle de l'image jusqu'à la frontière. Même si vous donnez l'image de fond d'écran, la frontière de l'image sera tiré sur elle.La
border-image
propriété est très utile si votre feuille de style est mis en œuvre quelque part qui ne prend pas en charge CSS 3. Si vous utilisez Google Chrome ou Firefox, alors je vous recommande lebackground-size:cover
de la propriété elle-même.Voulez-vous de cela, il suffit d'utiliser une image? Parce que vous pouvez réellement faire un peu similaire à un étirement arrière-plan à l'aide de deux images. PNG images par exemple.
Ce que j'ai fait avant, et il n'est pas difficile. D'ailleurs, je pense que l'étirement serait tout simplement nuire à la qualité de l'arrière-plan. Et si vous ajoutez une image énorme il serait de ralentir ralentir les ordinateurs et les navigateurs.