ich habe
body {
background: url(images/background.svg);
}
Der gewünschte Effekt ist, dass dieses Hintergrundbild eine Breite hat, die der der Seite entspricht, wobei sich die Höhe ändert, um die Proportionen beizubehalten. Wenn das Originalbild beispielsweise 100 * 200 (beliebige Einheiten) ist und der Körper 600 Pixel breit ist, sollte das Hintergrundbild 1200 Pixel hoch sein. Die Höhe sollte sich automatisch ändern, wenn die Fenstergröße geändert wird. Ist das möglich?
Im Moment sieht es so aus, als würde Firefox die Höhe anpassen und dann die Breite anpassen. Liegt das vielleicht daran, dass die Höhe die längste Abmessung ist und versucht wird, ein Zuschneiden zu vermeiden? Ich möchte vertikal zuschneiden und dann scrollen: keine horizontale Wiederholung.
Außerdem platziert Chrome das Bild in der Mitte, keine Wiederholung, auch wenn dies background-repeat:repeat
explizit angegeben wird, was ohnehin die Standardeinstellung ist.
html, body { height: 100%; }
? Auch Husten .Antworten:
Hierfür gibt es eine CSS3-Eigenschaft, nämlich
background-size
( Kompatibilitätsprüfung ). Während man Längenwerte einstellen kann, wird es normalerweise mit den speziellen Wertencontain
und verwendetcover
. In Ihrem speziellen Fall sollten Sie Folgendes verwendencover
:Eiererklärung für
contain
undcover
Entschuldigung für das schlechte Wortspiel, aber ich werde das Bild des Tages von Biswarup Ganguly zur Demonstration verwenden. Nehmen wir an, dies ist Ihr Bildschirm, und der graue Bereich befindet sich außerhalb Ihres sichtbaren Bildschirms. Zur Demonstration gehe ich von einem 16x9-Verhältnis aus.
Wir wollen das oben erwähnte Bild des Tages als Hintergrund verwenden. Aus irgendeinem Grund haben wir das Bild jedoch auf 4x3 zugeschnitten. Wir könnten die
background-size
Eigenschaft auf eine feste Länge einstellen , aber wir werden uns aufcontain
und konzentrierencover
. Beachten Sie, dass ich auch davon ausgehe, dass wir die Breite und / oder Höhe von nicht entstellt habenbody
.contain
Dadurch wird sichergestellt, dass das Hintergrundbild immer vollständig im Hintergrundpositionierungsbereich enthalten ist.
background-color
In diesem Fall kann jedoch ein leerer Bereich mit Ihrem Bild gefüllt sein :cover
Dies stellt sicher, dass das Hintergrundbild alles abdeckt. Es wird kein
background-color
Bild angezeigt. Abhängig vom Bildschirmverhältnis kann jedoch ein großer Teil Ihres Bildes abgeschnitten werden:Demonstration mit aktuellem Code
quelle
-webkit-
Präfix ausprobiert ?background-size: contain
contain
ist wie Zoom-Fit.cover
ist wie Zoomfüllung.contain
Passt die Bildgröße an die größere Dimension zwischen Breite und Höhe an.cover
Passt die Bildgröße an die kleinere Dimension zwischen Breite und Höhe an.Basierend auf den Tipps von https://developer.mozilla.org/en-US/docs/CSS/background-size erhalte ich das folgende Rezept, das für mich funktioniert hat
quelle
background-position: center;
, hat dies für mich besser funktioniert alsbackgound-size: cover;
.overflow-y: hidden
Teil brauchen ?Ich bin mir nicht sicher, wonach Sie genau suchen, aber Sie sollten sich unbedingt diese hervorragenden Blog-Beiträge von Chris Coyier von CSS-Tricks ansehen:
http://css-tricks.com/how-to-resizeable-background-image/
http://css-tricks.com/perfect-full-page-background-image/
Lesen Sie die Beschreibungen der einzelnen Artikel und prüfen Sie, ob sie das sind, wonach Sie suchen.
Der erste beantwortet die folgende Frage:
Das Ziel des zweiten Beitrags ist es, Folgendes zu erhalten: "Hintergrundbild auf einer Website, das jederzeit das gesamte Browserfenster abdeckt".
Hoffe das hilft.
quelle
Das Hintergrundbild ist nicht perfekt eingestellt, dann ist sein CSS-Problem beim Erstellen, sodass seine CSS-Datei in den folgenden Code geändert wird
%; Hintergrundgröße: 100% 100%; "
quelle
Versuche dies,
quelle
Fügen Sie einfach diese eine Zeile hinzu:
vh ist die Höhe des Ansichtsfensters. Dies wird automatisch an das Browserfenster des Geräts angepasst.
Überprüfen Sie hier mehr: Machen Sie div 100% Höhe des Browserfensters
quelle
quelle
Ich hatte das gleiche Problem und konnte die Größe des Bildes beim Anpassen der Browserabmessungen nicht ändern.
Schlechter Code:
Guter Code:
Der Schlüssel hier ist das Hinzufügen dieses Elements -> Hintergrundgröße: enthalten;
quelle
Folgendes hat bei mir funktioniert:
quelle
Das Einstellen der Hintergrundgröße hilft nicht, die folgende Lösung hat bei mir funktioniert:
Es beschneidet das Bild im Grunde genommen und passt es an, macht es aber
background-size: contain/cover
immer noch nicht passend.quelle