2014-11-14 4 views
11

In meiner AngualrJS-Anwendung verwenden wir angular-ui-bootstrap-Tooltips.Wie style ich nur einen bestimmten angular-ui-bootstrap-Tooltip, um breiter zu sein?

Ich habe einen Tooltip, der langen Text aufnehmen muss. Die Antwort SO Displaying long text in Bootstrap tooltip in Frage zeigt mir, wie Tooltips weiter gehen zu machen ...

... aber was ist, wenn ich nicht will alle Tooltips breiter machen, nur einen bestimmten Tooltip?

(Anmerkungen: AngularJS 1.2.24, jQuery verfügbar ... aber ich würde lieber nur in der Lage sein zu einen Stil auf das einzelne Tooltip gilt als komplizierter)

+1

Warum Sie nicht akzeptieren Ihre eigene Antwort? – Sampath

+1

@Sampath ha, danke, verpasst, dass:) – Daryn

Antwort

10

Wenn auf der anderen Seite Sie tooltip-append-to-body="true" haben, können Sie die folgende modifizierte Version von @ Code des Daryn verwenden

CSS

.tooltip-400max .tooltip-inner { 
    max-width: 400px; 
} 

HTML

<div id="element1" 
    tooltip-append-to-body="true" 
    tooltip-class="tooltip-400max" 
    tooltip="{{ model.longTooltip }}">Text</div> 
<div>More page content</div> 
+1

Dies ist jetzt eine bessere Antwort als mein Original, aufgrund der Einführung von "Tooltip-Klasse" in angular-ui v0.13.0 im Sommer 2015 verfügbar – Daryn

+2

Dies funktioniert auch für 'Popover'; benutze einfach 'popover-class'. – theblang

10

Solange Sie don ‚t haben tooltip-append-to-body="true", können Sie das folgende CSS (in diesem Beispiel die Breite Tooltip max machen 400px) verwenden:

CSS

.tooltip-400max + .tooltip .tooltip-inner { 
    max-width: 400px; 
} 

HTML

<div id="element1" 
    class="tooltip-400max" 
    tooltip="{{ model.longTooltip }}">Text</div> 
<div>More page content</div> 

Der Schlüssel im CSS oben ist die benachbarten Selektors Geschwister, +.

Das ist, weil, wie Sie wahrscheinlich wissen, wenn Sie über element1 schweben, wird der Tooltip als div nachelement1, etwa wie folgt eingefügt:

<div id="element1" 
    class="tooltip-400max" 
    tooltip="{{ model.longTooltip }}">Text</div> 
<div class="tooltip fade in" and other stuff>...</div> 
<div>More page content</div> 

So ist die CSS-Selektor .tooltip-400max + .tooltip wählt nur diesen eingefügten Tooltip aus, der ein angrenzender Sibiling ist. Der Nachfolger max-width stying wirkt sich nicht auf alle Tooltips aus, sondern nur auf Tooltips für Elemente mit der Klasse tooltip-400max.

+0

funktioniert nicht für mich. alle anderen Eigenschaften außer Breite funktionieren obwohl ??? –

+3

@das Welche Eigenschaft haben Sie angepasst, 'width' oder' max-width'? BTW Um dein Styling zu debuggen, möchte ich vorübergehend 'tooltip-trigger =" click "' zu dem Element hinzufügen, damit der Tooltip sichtbar bleibt und es mir ermöglicht, verschiedene Stile in den Browser-Entwickler-Tools auszuprobieren. – Daryn

+0

Eine andere schnelle Möglichkeit zum Debuggen ist das Klicken mit der rechten Maustaste auf den Tooltip und dann auf die Entwicklerkonsole (funktioniert in Chrome sowieso) – nardnob

Verwandte Themen