Kann eine Bildlaufleiste angezeigt werden, wenn der Inhalt des Browserfensters nach links überläuft?

8

Dieser Code bewirkt, dass der Browser eine horizontale Bildlaufleiste hat, wenn der Inhalt größer als das nach rechts überlaufende Fenster ist:

%Vor% %Vor%

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.

%Vor% %Vor%

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?

    
Peter Stock 01.08.2016, 12:23
quelle

5 Antworten

5

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

%Vor% %Vor%

Mit dir hack kann nicht der gesamte Longtext1 angezeigt werden.

%Vor% %Vor%

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:

    
Peter Stock 08.08.2016, 10:10
quelle
8

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.

%Vor% %Vor% %Vor%
    
Daniel Forbes 05.08.2016 15:41
quelle
0
  

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   Eigenschaft

     

Diese 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.

    
Michael_B 08.08.2016 13:40
quelle
-1

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?

    
TreantBG 01.08.2016 12:29
quelle
-2

Verwenden Sie den Container mit div, damit er nicht überläuft und Sie wissen, welche Größe der Container hat, damit der nächste entsprechend angepasst werden kann.

    
Osama 01.08.2016 12:33
quelle

Tags und Links