Dieser Code bewirkt, dass der Browser eine horizontale Bildlaufleiste hat, wenn der Inhalt größer als das nach rechts überlaufende Fenster ist:
Aber wenn ich das erste div-Float-Element nach rechts und das zweite nach links positioniere, erstellt der Browser keine horizontale Bildlaufleiste und der überlaufende Text kann nicht angezeigt werden.
Kann ich dieses Verhalten irgendwie ändern, um nach links scrollen zu können, wenn der Inhalt größer ist als das Fenster, das nach links überläuft?
Getestet auf FF 47, IE 11, Opera 38 - alle machen das Gleiche.
Wenn dieses Verhalten nicht von html / css geändert werden kann, aus welchem Grund wählen Browser, was sie gerade tun? Gibt es einen Grund, warum sie nicht "repariert" werden könnten? Wäre das aktuelle Verhalten auch nicht problematisch für Websites, die ausschließlich von rechts nach links verteilte Sprachen anbieten, von denen ich annehme, dass sie solche Layouts verwenden könnten?
Mit dem dir
-Attribut an den richtigen Stellen kannst du also halb machen, was ich wollte. Aber du kannst deinen Kuchen nicht essen und es nicht essen - ich wollte in der Lage sein, nach links zu blättern, um zu sehen, dass Inhalte nach links überlaufen, und scrolle auch nach rechts, um zu sehen, dass Inhalt nach rechts überläuft. Mit oder ohne diesen dir
hack hast du immer noch einige unübersichtliche Inhalte.
Ohne dir
hack, kann nicht alle von Longtext2 sehen
Mit dir
hack kann nicht der gesamte Longtext1 angezeigt werden.
Leider scheint es zur Zeit nicht möglich zu sein, die aktuellen Browser in die Lage zu versetzen, beide zu scrollen (mit der Anfangsposition der Bildlaufleiste am Ursprung des Dokuments, entsprechend dem Schieberegler irgendwo in der Mitte). Wie in diesem Modell:
Da Sie ein sehr spezifisches Beispiel haben, wird so etwas für Sie funktionieren? Ich musste ein wenig jquery verwenden (Sie können es mit Javascript tun). Wenn Sie keinen anderen Inhalt haben, der davon betroffen ist, können Sie ein rtl auf dem HTML-Tag platzieren und Ihre absolute Position auf dem Element beibehalten.
Kann eine Bildlaufleiste angezeigt werden, wenn der Inhalt des Browserfensters nach links überläuft?
Nein. Es sei denn, Sie hacken es.
Denken Sie über den Fluss des Inhalts nach.
Im Sprachenmodus von links nach rechts wird der Inhalt nach rechts überlaufen. Es läuft nicht nach links über.
Daher gilt die Eigenschaft overflow
nicht für die linke Seite, da kein Überlauf vorhanden ist.
In Sprachen von rechts nach links ist das Gegenteil der Fall.
Aus diesem Grund kann der RTL-Modus - entweder mit der CSS direction
-Eigenschaft oder dem HTML dir
-Attribut - RTL-Scroll in LTR-Sprachen ermöglichen (aber es ist ein Hack und kann unordentlich werden).
Aus der Spezifikation:
11.1.1 Überlauf:
overflow
EigenschaftDiese Eigenschaft gibt an, ob der Inhalt eines Blockcontainerelements vorhanden ist wird abgeschnitten, wenn es die Box des Elements überläuft.
Auch im LTR-Lese- / Schreibmodus läuft der Inhalt nicht nach links über.
Es ist üblich, die Eigenschaft overflow
für den Bildlauf nach links im Ansichtsfenster aufzurufen, nur weil overflow
häufig mit Bildlaufleisten verknüpft ist. Aber in Wirklichkeit ist die Anfrage für spezielles Scrollen, das nichts mit overflow
zu tun hat.
Mit CSS können Sie nicht feststellen, wenn einige Inhalte den Bildschirm oder den Browser überlaufen. Sie müssen den Container so einstellen, dass er diese Breite NICHT überschreitet und IHN (der Container) seine Rolle beim Überlauf anzeigen lässt. Zum Beispiel ein div:
%Vor%So mi Punkt können Sie Scroll auf Container zeigen, wenn der Inhalt größer ist als seine Breite.
Ist das was du willst?