Comment faire en sorte que les info-bulles Twitter Bootstrap aient plusieurs lignes?


157

J'utilise actuellement la fonction ci-dessous pour créer du texte qui sera affiché à l'aide du plugin d'info-bulle de Bootstrap. Comment se fait-il que les info-bulles multilignes ne fonctionnent qu'avec <br>et non \n? Je préfère qu'il n'y ait pas de HTML dans les attributs de titre de mes liens.

Ce qui fonctionne

def tooltip(object)
  tooltip = ""
  object.each do |user|
    tooltip += "#{user.identifier}" + "<br>"
  end
  return tooltip
end

Ce que je veux

def tooltip(object)
   tooltip = ""
   object.each do |user|
     tooltip += "#{user.identifier}" + "\n"
   end
   return tooltip
 end

1
Comprenez-vous la différence entre \ n et <br/> en HTML?
Cole Johnson

2
<br/> fonctionnera du côté du rendu html, tandis que / n affichera uniquement votre code html en nouvelle ligne
rajesh kakawat

Je regardais d'autres sites Web et ils ont des infobulles multilignes sans le br
Matthew Hui

Réponses:


265

Vous pouvez utiliser white-space:pre-wrapdans l'info-bulle. Cela obligera l'info-bulle à respecter les nouvelles lignes. Les lignes seront toujours enveloppées si elles sont plus longues que la largeur maximale par défaut du conteneur.

.tooltip-inner {
    white-space:pre-wrap;
}

http://jsfiddle.net/chad/TSZSL/52/

Si vous souhaitez empêcher le texte de s'habiller, procédez comme suit.

.tooltip-inner {
    white-space:pre;
    max-width:none;
}

http://jsfiddle.net/chad/TSZSL/53/

Aucun de ceux-ci ne fonctionnera avec un \ndans le html, ils doivent en fait être de véritables nouvelles lignes. Alternativement, vous pouvez utiliser des nouvelles lignes codées &#013;, mais c'est probablement encore moins souhaitable que d'utiliser <br>les.


1
Maintenant, comment faire cela avec un popover.
aaa90210

1
@ aaa90210 vous pouvez essayer .popover-content { white-space:pre-wrap; }. En fonction de votre contenu, .popover-content p { white-space:pre-wrap; }ou quelque chose de similaire, cela pourrait mieux sembler.
Chad von Nau

Est-il possible d'afficher les variables JSP dans l'info-bulle comme ceci? J'ai essayé <a href="#" rel="tooltip" title="${aaa} ${bbb} ${ccc}" class="example">Show</a>. Mais cela donne ceci: aaabbbccc (chaînes concaténées).
zygimantus

1
.tooltip-inner {white-space: pre-line;} fonctionne pour moi.
Kishor K

pré-ligne a fonctionné pour moi - tous les autres ont fait que le texte ne s'aligne pas correctement
Adam Moisa

221

Vous pouvez utiliser la propriété html: http://jsfiddle.net/UBr6c/

My <a href="#" title="This is a<br />test...<br />or not" class="my_tooltip">Tooltip</a> test.

$('.my_tooltip').tooltip({html: true})

1
Vous n'avez pas coché l' Bootstrap 2.0.2 (js only)option dans votre jsFiddle, ce qui l'empêche de fonctionner lors de l'exécution initiale (ouverte). Marquez-le et enregistrez-le, afin que les autres ne se conforment pas, que votre exemple ne fonctionne pas.
trejder

56

Si vous utilisez Twitter Bootstrap Tooltip sur un élément sans lien, vous pouvez spécifier que vous voulez une info-bulle multiligne directement dans le code HTML, sans Javascript, en utilisant uniquement le dataparamètre:

<span rel="tooltip" data-html="true" data-original-title="1<br />2<br />3">5</span>

Ceci est juste une version alternative de la réponse de Costales . Toute la gloire lui revient! :]


2
Pourquoi dites-vous «élément sans lien»? J'ai essayé cela sur un lien et cela semblait fonctionner correctement.
ec2011

2
Eh bien ... je ne me souviens pas! :] Après cinq mois, je pense que je me suis trompé. Je ne sais pas non plus pourquoi cela ne devrait pas fonctionner sur les liens. Désolé ...
trejder

1
Celui-ci a fonctionné pour moi, spécialement si vous déclenchez des infobulles avec javascript, cela sera chargé dans l'élément lui-même, merci!
Leo



0

La solution CSS pour Angular Bootstrap est

::ng-deep .tooltip-inner {
  white-space: pre-wrap;
}

Pas besoin d'utiliser un élément parent ou un sélecteur de classe si vous n'avez pas besoin de restreindre son utilisation. Copy / Pasta, et cette règle s'appliquera à tous les sous-composants

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.