Wie positioniert man ein Bootstrap popover?
Ich versuche, die position eines Bootstrap popover für einen trigger, der sitzt auf der weit rechten oberen Ecke ein 960px breites web-Seite.
Ideal, würde ich platzieren Sie es auf den Boden und bewegen Sie den Pfeil mit CSS (also den Pfeil auf der rechten oberen Seite des popover). Leider kann die 'placement':'bottom' Positionierung ist nicht genug, da wird es mittig unter dem trigger.
Ich bin auf der Suche nach Lösung, wird das popover statisch unten und auf der linken Seite des trigger.
- Es wäre hilfreich, um besser zu klären, Ihre Frage mit Beispiel-code und vielleicht ein Bild, das darstellt, wie Sie möchten, dass das popover zu position relativ zum trigger.
- Ich bin auch auf der Suche für eine bessere Kontrolle des popover-element. Haben nicht gefunden, noch nichts.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Dieser funktioniert. Getestet.
viewport
ist, wie man diese richtig positioniert ist. Dies ermöglicht es der container gebunden werden, um eine Einschränkung ohne die Notwendigkeit, manuell überschreiben Sie die position (vor allem, um eine fest - /soll-position)Einfach fügen Sie ein Attribut zu Ihrer popover! Sehen mein JSFiddle wenn man in Eile ist.
Den wir hinzufügen möchten, eine ID oder eine Klasse zu einer bestimmten popover, damit wir es anpassen, wie wir wollen via CSS.
Bitte beachten Sie, dass wir nicht anpassen wollen, alle popovers! Dieses ist schreckliche Idee.
Hier ist ein einfaches Beispiel - Anzeige der popover wie diese:
JS:
CSS:
HTML:
tip
- Funktion in Ihrem code?Ich habe ein jQuery-plugin, das bietet 4 zusätzliche placements:
topLeft, topRight, bottomLeft, bottomRight
Du nur entweder die minified js oder unminified js und haben die passende css (minified vs unminified) in den gleichen Ordner.
https://github.com/dkleehammer/bootstrap-popover-extra-placements
Popover ' s Viewport (Bootstrap v3)
Die beste Lösung für Sie zu allen Anlässen, vor allem, wenn Ihre website hat eine fluid Breite, ist die Verwendung der viewport Möglichkeit, die Bootstrap Popover.
Dadurch wird das popover nehmen Breite innen ein Selektor, der Sie zugeordnet haben. Also, wenn die trigger-Taste ist auf der rechten Seite des Containers, die bootstrap-Pfeil wird auch angezeigt, auf der rechten Seite, während die popover ist innerhalb dieses Bereichs.
Sehen jsfiddle.net
Können Sie auch Polsterung wenn Sie möchten, einige Flächen am Rand der container. Wenn Sie möchten, keine Polsterung, nur verwenden viewport: '.container"
in der folgenden html-Beispiel:
und mit CSS:
Popover Grenze (Bootstrap v4)
Ähnlich viewport, in der Bootstrap-version 4, popover wurde die neue option Grenze
https://getbootstrap.com/docs/4.1/components/popovers/#options
viewport
ist der Schlüssel zur Lösung dieses Problems. Die zusätzlichen css ist persönliche VorliebeIch das Problem gelöst (teilweise), indem Sie einige Zeilen code, um die bootstrap-css-Bibliothek. Sie haben zu ändern tooltip.js, tooltip.weniger, popover.js und popover.weniger
in tooltip.js fügen Sie in diesem Fall in der switch-Anweisung gibt es
im tooltip.weniger, fügen Sie diese beiden Zeilen in .tooltip{}
das gleiche zu tun popover.js und popover.weniger. Im Grunde, wo immer Ihr Sie findet-code, wo andere Positionen erwähnt sind, fügen Ihrer gewünschten position entsprechend.
Wie ich bereits erwähnt, dies löste das problem teilweise. Mein problem ist jetzt, dass der kleine Pfeil, der den popover nicht angezeigt.
Hinweis: wenn Sie wollen, um das popover in den top-Links, top-Attribut '.oben und Links-Attribut '.Links'
Bootstrap 3.0.0:
Und ändern zu
WWW, wo ist Ihr richtiger max-width, um zu zeigen, Ihre popover-content.
Hatte ich die folgenden änderungen für das popover zu positionieren, unten mit einigen überschneidungen und zu zeigen, den Pfeil richtig.
js
css
Diese können erweitert werden, um den Pfeil Standorten anderswo .. genießen Sie!
Wenn man einen Blick auf bootstrap source-codes, Sie werden feststellen, dass die position geändert werden kann, mit margin.
Also, zuerst ändern Sie die popover-Vorlage hinzufügen eigene css-Klasse, um nicht in Konflikt mit anderen popovers:
Dann mit css können Sie einfach verschieben popover position:
Diese Lösung nicht beeinflussen würde andere popovers, die Sie haben. Gleiche Lösung kann verwendet werden, auf tooltips, da popover-Klasse Erben von der tooltip-Klasse.
Hier ist eine einfache jsFiddle
Sicher, Sie können. Zum Glück gibt es eine saubere Art und Weise zu tun, und es ist in der Bootstrap popover /tooltip Dokumentation.
in der css-Datei:-
Stellen Sie sicher, fügen Sie die Vorlage in der bootstrap die tooltip-Dokumentation und fügen Sie Ihre benutzerdefinierte Klasse name und style es mit css
Und, das ist es. Sie finden mehr dazu auf https://getbootstrap.com/docs/4.0/components/tooltips/
Vielleicht brauchen Sie nicht, diese Logik für ein responsives Verhalten.
E. g.
Bootstrap 3 hat auto Wert für Platzierung. Bootstrap-doc: