0

Ich habe ein Problem, ein Hintergrundbild richtig zu positionieren. Es funktioniert auf dem Desktop, und selbst wenn ich das Fenster zur Simulation eines Telefons verkleinere, wird es korrekt angezeigt, aber wenn ich die Website auf meinem Handy (getestet auf Android/Chrome und iOS/Safari) besuche, scheint es die Hintergrundposition zu ignorieren Eigentum.CSS Hintergrund-Position funktioniert nicht auf Handy

CSS in Frage:

.blur { 
     background: 
    /* top, transparent blue, faked with gradient */ 
    linear-gradient(
     rgba(43, 43, 43, 0.1), 
     rgba(43, 43, 43, 0.1) 
    ), 
    /* bottom, image */ 
    /* BACKGROUND IMAGE */ 
    url('https://suzannecowan.ca/wp-content/uploads/2016/04/2015-10-20-macleans-2-1.jpg'); 
    background-attachment: fixed; 
    background-position: -350px -150px; 
    background-position-x: -350px; 
    background-position-y: -150px; 
    background-size: cover; 
    background-repeat: no-repeat; 
    background-color: #2b2b2b; 
    overflow: auto; 
} 

@media (min-width: 40em) { 

.blur { 
     background: 
    /* top, transparent blue, faked with gradient */ 
    linear-gradient(
     rgba(43, 43, 43, 0.1), 
     rgba(43, 43, 43, 0.1) 
    ), 
    /* bottom, image */ 
    /* BACKGROUND IMAGE */ 
    url('https://suzannecowan.ca/wp-content/uploads/2016/04/2015-10-20-macleans-2-1.jpg'); 
    background-attachment: fixed; 
    background-position: -350px 0; 
    background-size: cover; 
    background-repeat: none; 
    } 

@media (min-width: 50em) { 

    .blur { 
    background: 
     /* top, transparent blue, faked with gradient */ 
     linear-gradient(to right, 
     rgba(43, 43, 43, 0.1), 
     rgba(43, 43, 43, 0.1) 
    ), 
     /* bottom, image */ 
     /* BACKGROUND IMAGE */ 
     url('https://suzannecowan.ca/wp-content/uploads/2016/04/2015-10-20-macleans-2-1.jpg'); 
    background-attachment: fixed; 
    background-position: -250px 0; 
    background-size: cover; 
    background-repeat: none; 
    } 

Ich habe nach Lösungen gesucht und gefunden zwei Vorschläge, die Menschen geholfen haben es die Vergangenheit: das Hinzufügen background-position-x und background-position-y, die nicht helfen, und die Bewegung des Hintergrundbild aus body und in einen anderen Container (.blur in diesem Fall), die auch nicht geholfen hat.

Die Website ist: https://suzannecowan.ca/.

Vielen Dank im Voraus für eine Beratung, die Sie zur Verfügung stellen können.

+0

Haben Sie versucht, einen Pixelbetrag für '@media (min-width:)' zu verwenden? Ich habe nie 'em' zu diesem Zweck gesehen. – theblindprophet

+0

@theblindprophet Ich habe immer 'em' dafür verwendet und hatte noch nie ein Problem, aber ich änderte es wie Sie vorgeschlagen und es machte keinen Unterschied. –

+0

Was besonders frustrierend ist, ist, dass ich die gleiche Technik auf shaun-francis.com verwendet habe und es hat perfekt funktioniert, also weiß ich nicht, was ich jetzt falsch mache. –

Antwort

1

Wenn Sie Ihr bg-Bild auf cover einstellen, bedeutet das, dass es sich auf die Höhe des Bildschirms ausdehnt, was bedeutet, dass Sie auf einem kleinen Gerät eine sehr enge Sicht darauf haben. Persönlich würde ich entweder die Größe des Bildes ändern, um größer und dünner zu sein, so dass es besser auf einem mobilen Bildschirm passt, oder statt dessen die Hintergrundgröße auf 100% auto setzen, was ziemlich gut aussieht.

+0

Danke! Das hat funktioniert. Ich habe die Hintergrundgröße geändert und die Hintergrundpositionierung nur für Mobilgeräte entfernt und es funktioniert einwandfrei. Gut zu bemerken, dass diese Lösung nicht funktionieren würde, wenn ich das Hintergrundbild zum Füllen des gesamten Bildschirms benötigen würde (weshalb ich "cover" verwendet habe), aber in diesem Fall ist es egal, ob das Bild nicht gefüllt ist Der ganze Bildschirm in Längsrichtung, diese Lösung wird funktionieren. –

+2

Cool. Ich habe auch gerade gelesen, dass "du Hintergrund-Anhang nicht fix und Hintergrundgröße verwenden kannst: Cover zusammen in IOS, da das Bild sich auf den gesamten Inhalt erstreckt und nicht nur auf das Ansichtsfenster (es ist ein lang andauerndes Problem mit iOS)." Sie haben also auch gegen einen echten Bug gearbeitet. –

0

In Android/Chrome wird der Hintergrund positioniert. Wenn Sie den Wert ändern, wird das Bild verschoben. Sie können dies auch über den Chrome (mobile) Web-Debugger bestätigen.

Der Unterschied zwischen Mobile/Desktop kommt von dem Unterschied, wie die beiden diese Längeneinheiten behandeln.

Verwandte Themen