Ich habe versucht, ein Twitter-Bootstrap-Untermenü im Dropdown-Menü zu erstellen, aber ich habe ein Problem: Ich habe ein Dropdown-Menü in der oberen rechten Ecke der Seite und dieses Menü enthält ein weiteres Untermenü. Wenn das Untermenü geöffnet wird, passt es jedoch nicht in das Fenster und geht zu weit nach rechts, sodass der Benutzer nur die ersten Buchstaben sehen kann. Wie lässt sich dieses Untermenü nicht rechts, sondern links öffnen?
javascript
jquery
css
twitter-bootstrap
Kovpack
quelle
quelle
.pull-right
den.dropdown
Container hinzu.Antworten:
Der einfachste Weg wäre, die
pull-left
Klasse zu Ihrer hinzuzufügendropdown-submenu
jsfiddle: DEMO
quelle
.dropdown-submenu.pull-left>.dropdown-menu { width: 100%; }
Keine elegante Lösung, scheint aber zu funktionieren jsfiddle.net/r1v90tasWenn ich das richtig verstanden habe, bietet Bootstrap eine CSS-Klasse für genau diesen Fall. Fügen Sie 'Pull-Right' zum Menü 'ul' hinzu:
..und das Endergebnis ist, dass die Menüoptionen rechtsbündig angezeigt werden, entsprechend der Schaltfläche, von der sie herunterfallen.
quelle
pull-right
Klasse, um dies zu erreichen.Aktuelle Klasse
.dropdown-submenu > .dropdown-menu
habenleft: 100%;
. Wenn Sie also das Untermenü auf der linken Seite öffnen möchten, überschreiben Sie diese Einstellungen auf die negative linke Position. Zum Beispielleft: -95%;
. Jetzt erhalten Sie auf der linken Seite ein Untermenü, und Sie können andere Einstellungen anpassen, um eine perfekte Vorschau zu erhalten.Hier ist DEMO
EDIT: Die Frage von OP und meine Antwort stammen aus dem August 2012. In der Zwischenzeit hat sich Bootstrap geändert, sodass Sie jetzt die Klasse .pull-left haben. Damals war meine Antwort richtig. Jetzt müssen Sie CSS nicht mehr manuell einstellen, sondern haben diese .pull-left-Klasse.
EDIT 2: Demos funktionieren nicht, da Bootstrap ihre URLs geändert hat. Ändern Sie einfach externe Ressourcen in jsfiddle und ersetzen Sie sie durch neue.
quelle
left: -90%;
(ansonsten kann ich meine Maus nicht in dieses Untermenü bewegen, da es verschwindet).Wenn Sie Bootstrap v4 verwenden, gibt es eine neue Möglichkeit, dies zu tun.
Sie sollten
.dropdown-menu-right
für das.dropdown-menu
Element verwenden.Link zum Code: https://getbootstrap.com/docs/4.0/components/dropdowns/#menu-items
quelle
dropleft
unddropright
der Kontext der Antwort ist korrekt. Vielen Dank!Der richtige Weg, um die Aufgabe zu erledigen, ist:
quelle
.dropdown-submenu { position: relative; text-align:right; }
Um den Text nach rechts zu positionieren, wenn der Pfeil nach links zeigt.Ich habe eine Javascript-Funktion erstellt, die prüft, ob auf der rechten Seite genügend Platz vorhanden ist. Wenn ja, zeigt er es auf der rechten Seite an, andernfalls zeigt er es auf der linken Seite an
Getestet in:
Javascript:
Da ich diesen Fix nicht für alle Menüelemente hinzufügen möchte, habe ich eine neue Klasse darauf erstellt. platziere das feste Menü auf der ul:
Ich hoffe das klappt für dich.
ps. kleiner Fehler in Safari und Chrome, erster Hover wird es platzieren, um nach links zu mutchen, wird diesen Beitrag aktualisieren, wenn ich ihn behoben habe.
quelle
Wenn Sie nur eine Ebene haben und Bootstrap 3 verwenden, fügen Sie
pull-right
demul
Element hinzuquelle
Eigentlich - wenn Sie mit schwimmendem die ok sind
dropdown
Wrapper - ich habe es gefunden ist so einfach zu sein , wie hinzufügen ,navbar-right
um diedropdown
.Dies scheint zu schummeln, da es nicht in einer Navigationsleiste ist, aber es funktioniert gut für mich.
Sie können das Floating dann mit einem
pull-left
direkt in derdropdown
...... oder als Hülle ...
quelle
Wenn Sie WENIGER CSS verwenden, habe ich ein kleines Mixin geschrieben, um das Dropdown-Menü mit dem Verbindungspfeil zu verschieben:
Um dann eine
.dropdown-menu
mit der ID vondropdown-menu-x
zu verschieben, können Sie Folgendes tun:quelle
Ich habe eine Javascript-Funktion erstellt, die prüft, ob auf der rechten Seite genügend Platz vorhanden ist. Wenn ja, zeigt er es auf der rechten Seite an, andernfalls zeigt er es auf der linken Seite an. Wenn auf der rechten Seite genügend Platz vorhanden ist, wird die rechte Seite angezeigt. es ist eine Schleife ...
});
quelle
Verwenden Sie die neueste Version von Bootstrap? Ich habe das HTML aus dem Fluid Layout-Beispiel wie unten gezeigt angepasst . Ich fügte ein Dropdown hinzu und platzierte es am weitesten rechts, indem ich die
pull-right
Klasse hinzufügte . Wenn Sie mit der Maus über das Dropdown-Menü fahren, wird es automatisch nach links gezogen und nichts wird ausgeblendet - der gesamte Menütext ist sichtbar. Ich habe kein benutzerdefiniertes CSS verwendet.quelle