Wie positioniere ich eine div-Bildlaufleiste auf der linken Seite?

Lesezeit: 6 Minuten

Ist es möglich, eine Position (linke oder rechte Seite) für die Platzierung einer vertikalen Bildlaufleiste auf einem div anzugeben?

Betrachten Sie zum Beispiel diese Seite was erklärt, wie das overflow-Attribut verwendet wird. Gibt es eine Möglichkeit, diese Bildlaufleiste auf der linken Seite des scrollbaren Bereichs zu platzieren?

  • Schau mal in diesen Thread. Zeigt einige der Einschränkungen, die ich fürchte. stackoverflow.com/questions/5123417/…

    – Graeme Leighfield

    8. September 11 um 11:54 Uhr

  • mögliches Duplikat der HTML-Element-Bildlaufleiste auf der linken Seite

    – peirix

    8. September 11 um 11:58 Uhr

Du könntest es versuchen direction:rtl; in deinem CSS. Setzen Sie dann die Textrichtung im Inneren zurück div

#scroll{
    direction:rtl; 
    overflow:auto; 
    height:50px; 
    width:50px;}

#scroll div{
    direction:ltr;
}

Ungetestet.

  • Ich denke, IE und Opera sind die einzigen Browser, die die Bildlaufleiste für RTL-Inhalte links platzieren.

    – Joey

    25. Oktober 11 um 13:22 Uhr

  • @Joey stimmt nicht auch Chrom unter Ubuntu

    – Tom

    25. Juli 13 um 22:03 Uhr

  • Ich möchte bestätigen, dass sich Chrome 32 auf der linken Seite befindet. Und an dieser Stelle ist es nicht verwunderlich, dass Firefox in CSS ein Nachzügler ist

    – Georg Mauer

    23. Januar 14 um 16:52 Uhr

  • Funktioniert auf Chrome/Mac und Firefox/Mac, aber nicht auf Safari/Mac

    – Maxime Schöni

    4. Januar 16 um 11:37 Uhr

  • @GeorgeMauer Mozilla hat den Scrollbalken absichtlich rechts für RTL-Inhalte gelassen. Damals glaubten wir, dass es ein Usability-Problem wäre, wenn der Benutzer sein Muskelgedächtnis basierend auf dem aktuellen Seiteninhalt ändern müsste. Ich habe an dieser Diskussion teilgenommen, die in Mozillas Bugzilla zu finden ist.

    – Tsahi Asher

    11. September 18 um 18:51 Uhr

Wie positioniere ich eine div Bildlaufleiste auf der linken Seite
Jasonleonhard

  .list_container {
    direction: rtl;
    overflow:auto;
    height: 50px;
    width: 50px;
  }

  .item_direction {
    direction:ltr;
  }
<div class="list_container">
  <div class="item_direction">1</div>
  <div class="item_direction">2</div>
  <div class="item_direction">3</div>
  <div class="item_direction">4</div>
  <div class="item_direction">5</div>
  <div class="item_direction">6</div>
  <div class="item_direction">7</div>
  <div class="item_direction">8</div>
  <div class="item_direction">9</div>
  <div class="item_direction">10</div>
  <div class="item_direction">11</div>
  <div class="item_direction">12</div>
</div>

Arbeitsbeispiel: JSFiddle

oder

Lösung zum Ausschneiden und Einfügen, die für alle gängigen Browser (sogar Safari) funktioniert

Jede Höhe oder Breite funktioniert

<style>
  .list_container {
    direction: rtl;
    overflow:auto;
    height: 50px;
    width: 50px;
  }

  .item_direction {
    direction:ltr;
  }
</style>
<div class="list_container">
  <div class="item_direction">1</div>
  <div class="item_direction">2</div>
  <div class="item_direction">3</div>
  <div class="item_direction">4</div>
  <div class="item_direction">5</div>
  <div class="item_direction">6</div>
  <div class="item_direction">7</div>
  <div class="item_direction">8</div>
  <div class="item_direction">9</div>
  <div class="item_direction">10</div>
  <div class="item_direction">11</div>
  <div class="item_direction">12</div>
</div>

Optional hinzufügen class="item_direction zu jedem Element, um die Richtung des Textflusses zurück zu ändern, während die Containerrichtung beibehalten wird.

  • Gerne gehorchen.

    – Jasonleonhard

    1. Mai 18 um 22:28 Uhr

  • Als Nebenbemerkung: Diese Antwort ist kein gültiges HTML, da sie doppelte IDs enthält. Es sollte sein class="item_direction" anstatt id="item_direction" und .item_direction { anstatt #item_direction {.

    – Umzug

    25. August 18 um 16:47 Uhr


  • Entschuldigung, ich habe schnell geantwortet und einen Fehler gemacht, Sie haben Recht und ich habe meine Antwort aktualisiert.

    – Jasonleonhard

    25. August 18 um 21:22 Uhr

  • Sie können auch eine andere CSS-Regel verwenden, um die Richtung für alle direkten untergeordneten Elemente zurückzusetzen: .list_container > * { direction: ltr; }

    – Erich Schreiner

    20. Januar 20 um 6:08 Uhr


  • Was für eine absolute Legende du bist.

    – Dima Malko

    8. Dezember 21 um 13:53 Uhr

Irgendwie eine alte Frage, aber ich dachte, ich sollte eine Methode einwerfen, die nicht allgemein verfügbar war, als diese Frage gestellt wurde.

Sie können die Seite der Bildlaufleiste in modernen Browsern mit umkehren transform: scaleX(-1) auf einen Elternteil <div>, und wenden Sie dann dieselbe Transformation an, um ein untergeordnetes “sleeve”-Element umzukehren.

HTML

<div class="parent">
  <div class="sleeve">
    <!-- content -->
  </div>
</div>

CSS

.parent {
  overflow: auto;
  transform: scaleX(-1); //Reflects the parent horizontally
}

.sleeve {
  transform: scaleX(-1); //Flips the child back to normal
}

Hinweis: Möglicherweise müssen Sie eine verwenden -ms-transform oder -webkit-transform Präfix für Browser so alt wie IE 9. Prüfen Kann ich benutzen und klicken Sie auf “Alle anzeigen”, um ältere Browseranforderungen anzuzeigen.

  • Dies ist eine der herausragendsten Lösungen.

    – Miron

    6. September 17 um 5:17 Uhr


  • Danke! Soweit ich weiß, funktioniert das Ändern der Textrichtung auch. Die Transformationseigenschaft fühlt sich einfach … eleganter an? Zumindest ist es semantisch korrekter. 🙂

    – Dom Ramírez

    23. September 17 um 0:35 Uhr

  • Ich denke, dass Sie mit dieser Methode auch von einigen GPU-Verbesserungen profitieren. Ich fliege in einem Menü von der rechten Seite des Bildschirms und möchte nicht, dass die Bildlaufleiste des Menüs neben der Bildlaufleiste der Seite erscheint … zu verwirrend. Ich bekomme damit weniger Animationsruckeln als mit der Richtungsumschaltung.

    – David Studer

    10. Oktober 17 um 19:19 Uhr

  • Ich mag das ein LOOOT .. Danke Mann

    – Hady Shaltout

    23. April 18 um 23:26 Uhr

  • Diese Methode kann auch verwendet werden, um die horizontale Bildlaufleiste oben zu platzieren: transform: scaleY(-1)

    – Daniel Williams

    19. Juli 19 um 14:42 Uhr

1643910728 564 Wie positioniere ich eine div Bildlaufleiste auf der linken Seite
Benutzer1597594

Ich habe das gleiche Problem. aber wenn ich hinzufüge direction: rtl; in Tabs und Akkordeon-Combo, aber es stürzt meine Struktur ab.

Der Weg, es zu tun, ist div mit hinzuzufügen direction: rtl; als übergeordnetes Element und für untergeordnetes div-Set direction: ltr;.

Ich benutze diese zuerst https://api.jquery.com/wrap/

$( ".your selector of child element" ).wrap( "<div class="scroll"></div>" );

dann einfach mit css arbeiten 🙂

In Kindern div zu CSS hinzufügen

 .your_class {
            direction: ltr;    
        }

Und zum übergeordneten div, das von jQuery mit der Klasse .scroll hinzugefügt wurde

.scroll {
            unicode-bidi:bidi-override;
            direction: rtl;
            overflow: scroll;
            overflow-x: hidden!important;
        }

Funktioniert für mich perfekt

http://jsfiddle.net/jw3jsz08/1/

Nein, Sie können die Platzierung der Bildlaufleisten nicht ohne zusätzliche Probleme ändern.

Sie können die Textrichtung in rechts nach links ( rtl ) ändern, aber es ändert auch die Textposition innerhalb des Blocks.

Dieser Code kann Ihnen helfen, aber ich bin mir nicht sicher, ob er in allen Browsern und Betriebssystemen funktioniert.

<element style="direction: rtl; text-align: left;" />

  • Ich denke, IE und Opera sind die einzigen Browser, die die Bildlaufleiste für RTL-Inhalte links platzieren.

    – Joey

    25. Oktober 11 um 13:22 Uhr

1643910728 693 Wie positioniere ich eine div Bildlaufleiste auf der linken Seite
Mendy

Folgendes habe ich getan, damit die rechte Bildlaufleiste funktioniert. Es muss lediglich beachtet werden, dass bei Verwendung von ‘direction: rtl’ auch ganze Tabellen geändert werden müssen. Hoffentlich gibt Ihnen das eine Idee, wie es geht.

Beispiel:

<table dir="rtl"><tr><td>Display Last</td><td>Display Second</td><td>Display First</td></table>

Überprüfen Sie dies: JSFiddle

  • Ich denke, IE und Opera sind die einzigen Browser, die die Bildlaufleiste für RTL-Inhalte links platzieren.

    – Joey

    25. Oktober 11 um 13:22 Uhr

Wie positioniere ich eine div Bildlaufleiste auf der linken Seite
Andreas Vasiltschuk

Es gibt eine dedizierte npm Paket dazu. css-Scrollbar-Seite

.

758300cookie-checkWie positioniere ich eine div-Bildlaufleiste auf der linken Seite?

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy