2012-04-09 14 views
2

Haben Sie versucht, das herauszufinden, aber kann nicht mit einer guten Lösung kommen und kann nicht sehen, Fishbox hat bereits die Lösung dafür? Korrigiere mich, wenn ich falsch liege.Fancybox berücksichtigt nicht die Breite der Bildlaufleiste

Das Problem: Ich habe eine Fancybox, die einen iFrame öffnet, wo der Benutzer ein paar Schritte (neue Seiten) durchläuft. Einige von ihnen haben ziemlich viel Inhalt, was mir Scrollbalken gibt, und einige nicht. Das Problem ist, dass die Fancybox nicht die Scrollbar-Breite berücksichtigt, und gibt mir auch X-Scrollbar.

Lösungen

  • kann ich die Fancybox Breite etwas + 20, das ist etwa die Größe eines Scrollbar, setzen aber nicht in jedem Browser, und es wäre mir einige seltsame Abstand geben, wenn Theres keine Scrollbar .
  • Ich könnte möglicherweise hinzufügen Überlauf: irgendwo versteckt, aber das würde meinen Inhalt zu viel schneiden.
  • Ich könnte JS selbst schreiben, um herauszufinden, ob die Bildlaufleiste im Weg ist.
  • Oder ich könnte overflow-y hinzufügen: scroll, die eine Scrollbar die ganze Zeit zeigen würde, aber irgendwie nicht in jedem Browser, die auch seltsame Abstände geben würde.

Das sind einige der Lösungen, die ich mir vorstellen konnte, aber keine ist gut imo. Was würdest du tun?

EDIT Nach einem Gespräch mit rlemon, habe ich beschlossen, um den Inhalt einen Behälter zu setzen, die Breite Elemente befestigt hatte, und setzte Überlauf-x: auf Körper versteckt. Das alles bedeutet, dass ich alles verstecken kann, was zu viel ist, weil ich weiß, dass die Elemente mit fester Breite innen und sichtbar sind.

+1

Ist es möglich, dass Sie uns das Problem zeigen? http://jsfiddle.net oder ein Screenshot möglicherweise? auch ein Code würde helfen. – rlemon

Antwort

1

Nach einem Gespräch mit rlemon, habe ich beschlossen, um den Inhalt einen Behälter zu setzen, die Breite Elemente befestigt war, und Überlauf-x eingestellt: auf Körper versteckt. Das alles bedeutet, dass ich alles verstecken kann, was zu viel ist, weil ich weiß, dass die Elemente mit fester Breite innen und sichtbar sind.

0

Vielleicht nur die horizontale Bildlaufleiste unterdrücken:

overflow-y:hidden; 
Verwandte Themen