139 Stimmen

Weißer Raum auf der rechten Seite der Seite, wenn das Hintergrundbild über die gesamte Länge der Seite reichen sollte

Bei unseren Hintergrundbildern für Webseiten gibt es sowohl in FireFox als auch in Safari in iOS auf iPads/iPhones Probleme mit weißem Raum, der auf der rechten Seite der Seite erscheint.

Die Hintergrundbilder lassen sich in anderen Browsern problemlos ausdehnen, aber wir haben Probleme damit, dass sie sich in diesen Browsern nicht über die gesamte Länge des Browsers erstrecken.

Nehmen Sie eine Sehen Sie sich unsere Website auf FireFox an um zu sehen, was ich meine.

1 Stimmen

Wenn Sie einen Rahmen wie Bootstrap oder Foundation verwenden, überprüfen Sie, ob die Spalte jetzt das erste Kind von body ist, aber in einem anderen Div verschachtelt ist, das eine Art von Polsterung hat (z.B. small-12).

1 Stimmen

Haben Sie das Problem gelöst, @Dave?

1 Stimmen

Verrückt, nicht wahr? 6 Jahre später und iOS Safari zeigt immer noch dieses Problem. Ich habe zahlreiche CSS-Lösungen ausprobiert, musste aber schließlich auf die Verwendung von jQuery zurückgreifen. stackoverflow.com/a/45009357/391605

340voto

Rion Williams Punkte 72064

Ich fügte hinzu:

html,body
{
    width: 100%;
    height: 100%;
    margin: 0px;
    padding: 0px;
    overflow-x: hidden; 
}

in Ihr CSS ganz oben über den anderen Klassen und es schien Ihr Problem zu beheben.

Ihre aktualisierte .css-Datei ist hier verfügbar

7 Stimmen

Super, das hat gerade einen Fehler behoben, der mich schon seit einer Weile stört!

29 Stimmen

Ich hatte ein Problem mit dem Scrollen auf Safari iphone mit diesem Code, wurde es sehr langsam. Ich fand am Ende war es die Kombination von Höhe: 100% und overflow-x: versteckt, so dass ich entfernt Höhe: 100% und es funktioniert viel besser.

1 Stimmen

Danke, das hat wunderbar funktioniert. Ich habe mich immer gefragt, wie man die fast unendliche Bildlaufleiste loswerden kann. Nicht sicher, warum dies nicht als eine Antwort markiert worden.

180voto

optimiertes Punkte 3672

Debuggen Sie Ihr CSS für Ghost-CSS-Elemente.

Verwenden Sie dieses Lesezeichen, um Ihr CSS zu debuggen: https://blog.wernull.com/2013/04/debug-ghost-css-elements-causing-unwanted-scrolling/

Oder fügen Sie das CSS direkt selbst hinzu:

* {
  background: #000 !important;
  color: #0f0 !important;
  outline: solid #f00 1px !important;
}

In meinem Fall war ein Facebook Like Button die Ursache des Problems.

3 Stimmen

Das kam wirklich gelegen

10 Stimmen

Geniale Lösung! Dies wird Ihnen helfen, die Ursache des Problems zu finden und es richtig zu beheben, und alles, was es erfordert, ist ein paar Zeilen von css.

8 Stimmen

Dies sollte die akzeptierte Antwort sein, IMO. Ich wette, dass die meisten Leute 100vw als Breite von etwas verwendet haben und dadurch diesen Fehler bekommen haben. Einfach den Überlauf ausblenden ist eine suboptimale Lösung.

66voto

Jon Ryser Punkte 731

Nach der Erkundung einige der hilfreichen Strategien hier zur Verfügung gestellt, fand ich, dass ich nur iOS spezifische CSS hinzufügen musste (ich habe es am unteren Rand meiner Haupt-CSS-Blatt.) Scheint wie Ausblenden der Overflow-x war die Antwort für mich. Ich nehme an, dass die Angabe der Breite bei 100 % hilft, falls mein Inhalt breit wird. Es sollte angemerkt werden, dass ich dieses Problem nur in iOS hatte. Wenn es auch in Firefox auftritt, sollte wahrscheinlich nur der html- und body-Block verwendet werden, da @media speziell auf mobile Geräte ausgerichtet ist.

@media
only screen and (-webkit-min-device-pixel-ratio: 1.5),
only screen and (-o-min-device-pixel-ratio: 3/2),
only screen and (min--moz-device-pixel-ratio: 1.5),
only screen and (min-device-pixel-ratio: 1.5){

  html,
  body{
    width:100%;
    overflow-x:hidden;
  }

}

Bitte hippen Sie mich, wenn dies jemandem falsch erscheint :)

9 Stimmen

Das war das einzige, was mein Problem gelöst hat

3 Stimmen

Danke - die beste Lösung für mich. Auch ziemlich unauffällig

1 Stimmen

Dies löst das Problem und ist für den mobilen Weißraum sinnvoll

35voto

hyphen Punkte 947

Diese Frage ist schon ziemlich alt, aber ich dachte, ich füge meine 2 Cent hinzu. Ich habe versucht, die oben genannten Lösungen, einschließlich der Geist css, die ich auf jeden Fall für die zukünftige Verwendung zu speichern. Aber keine dieser Lösungen hat in meiner Situation funktioniert. Hier ist, wie ich mein Problem behoben. Hoffentlich hilft das jemand anderem.

Öffnen Sie den Inspektor (oder was auch immer Sie bevorzugen) und beginnen Sie mit dem ersten div im body-Tag und fügen Sie hinzu display: none; auf genau dieses Element. Wenn die Bildlaufleiste verschwindet, wissen Sie, dass dieses Element das Element enthält, das das Problem verursacht. Entfernen Sie dann die erste Css-Regel und gehen Sie eine Ebene tiefer in das enthaltende Element. Wenn die Bildlaufleiste dann verschwindet, wissen Sie, dass dieses Element entweder das Problem verursacht oder es enthält. Wenn das Hinzufügen des CSS nichts bewirkt, wissen Sie, dass das Problem nicht von diesem div verursacht wurde und dass entweder ein anderes div im Container oder der Container selbst die Ursache ist.

Dies mag für einige zu zeitaufwendig sein. Zum Glück befand sich mein Problem in der Kopfzeile, aber ich kann mir vorstellen, dass es etwas länger dauern würde, wenn das Problem in der Fußzeile oder ähnlichem läge.

0 Stimmen

Mit dieser Methode habe ich den Fehler gefunden.

0 Stimmen

Ja, oder Sie können im Dom nach unten gehen und die Divs der obersten Ebene nacheinander ausblenden, dann in sie hineingehen usw.

0 Stimmen

Dies ist wirklich der einzige Weg, um das Root-Problem erfolgreich zu beheben, wenn Sie seltsame Elemente haben, wie solche mit height: 0 o height: 1 . In meinem Fall fand ich die Ursache war eine fehlerhafte "unsichtbar" Klasse in Drupal 7 Kern: drupal.org/node/2664214

18voto

Hom Punkte 411

overflow-x: hidden; funktioniert für mich perfekt.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X