Die Situation ist wie folgt: (PS: Das rote Kästchen stellt den Iframe-Bereich dar und das graue Rechteck stellt das oben erwähnte Element mit der Breite: 100 % dar. Sie müssen IE6 verwenden, um den Effekt zu sehen.) Wenn die Höhe des grauen Felds größer als die Höhe des Iframes ist, werden vertikale und horizontale Bildlaufleisten angezeigt (unter IE6). Der Effekt ist normal, wenn die Höhe der grauen Box kleiner ist als die Höhe des Iframes. Lösung 1: Fügen Sie der inneren Seite Stil hinzu: html { overflow-y: scroll; } Wenn die Höhe des grauen Felds größer als die Höhe des Iframes ist, wird nur die vertikale Bildlaufleiste angezeigt und der Effekt ist korrekt. Wenn die Höhe des grauen Felds kleiner als die Höhe des Iframes ist, wird die vertikale Bildlaufleiste weiterhin angezeigt (nicht verfügbar), was einen Fehler darstellt. Lösung 2: Fügen Sie der inneren Seite einen Stil hinzu: html { overflow-x: hidden; overflow-y: auto; } Wenn die Höhe des grauen Felds größer als die Höhe des Iframes ist, wird nur die vertikale Bildlaufleiste angezeigt, aber der Inhalt auf der rechten Seite wird nicht vollständig angezeigt (PS: Der Text darin lautet „Dies ist ein Div mit einer Höhe von 200 Pixeln“) und der Effekt ist falsch. Wenn die Höhe des grauen Felds geringer ist als die Höhe des Iframes, wird keine Bildlaufleiste angezeigt und der Effekt ist korrekt. Lösung 3: Nach vielen Versuchen haben wir noch immer nicht die perfekte reine CSS-Lösung gefunden und streben nach dem perfektesten Effekt. Da reines CSS das Problem nicht lösen kann, müssen wir JS verwenden. Durch den vorherigen Test haben wir festgestellt, dass keine Verarbeitung erforderlich ist, um den richtigen Effekt zu erzielen, wenn die Höhe des grauen Felds kleiner als die Höhe des Iframes ist, und wenn die Höhe des grauen Felds größer als die Höhe des Iframes ist, ist Lösung 1 perfekt. Daher hat unser JS die folgende Idee: Wenn der Browser IE6 ist und die Inhaltshöhe höher als das Iframe ist, fügen Sie dem HTML-Tag den Stil der Lösung 1 hinzu. Hier ist der jQuery-Code: (Die Idee ist ohne jQuery dieselbe.) Code kopieren Der Code lautet wie folgt:$(Funktion(){ wenn($.browser.msie&&$.browser.version=="6.0"&&$("html")[0].scrollHeight>$("html").height()) $("html").css("overflowY","scroll"); }); Wenn die Höhe des grauen Felds größer als die Höhe des Iframes ist, wird nur die vertikale Bildlaufleiste angezeigt und der Effekt ist korrekt. Der Effekt ist korrekt, wenn die Höhe des grauen Felds kleiner ist als die Höhe des Iframes. Lerne jeden Tag glücklich zu sein (: |
>>: CSS implementiert die Webkomponentenfunktion zum Verschieben des Nachrichtenfelds
Zusammengeklappte Kopfzeilen sind eine großartige...
1. HTML-Tags mit Attributen XML/HTML-CodeInhalt i...
Inhaltsverzeichnis Tomcat mit Docker installieren...
Inhaltsverzeichnis MySQL-Client/Server-Protokoll ...
Das Installationstutorial für MySQL 8.0.11 WinX64...
Heute ist in meiner lokalen Entwicklungsumgebung ...
1. Rufen Sie das Virtualisierungscenter auf, meld...
1. Einleitung Durch Aktivieren des Slow Query Log...
Das einfache, nahtlos scrollende Karussell weist ...
1. Servicemethode Überprüfen Sie den Firewall-Sta...
Verwenden Sie Textausrichtung, Rand: 0 automatisc...
Inhaltsverzeichnis Verwendung von CURRENT_TIMESTA...
Inhaltsverzeichnis Vorwort Vorbereiten Zusammenfa...
Zusammenfassen Dieser Artikel endet hier. Ich hof...
Gegeben sei ein Div mit folgendem Hintergrundbild...