Ajouter une rupture de ligne dans les tooltips

comment ajouter des sauts de ligne dans un tooltip HTML?

j'ai essayé d'utiliser <br/> et n dans le tooltip comme suit:

<a href="#" title="Some long text <br/> Second line text n Third line text">Hover me</a>

Cependant, c'était inutile et je pouvais voir le texte littéral <br/> et n dans l'info-bulle. Toutes les suggestions seront utiles.

126
demandé sur reformed 2010-07-27 08:44:28

20 réponses

utilisez simplement le code d'entité &#013; pour un saut de ligne dans un attribut title.

207
répondu Fred Senese 2012-02-02 19:20:41

Le &#013; combiné avec le style white-space: pre-line; a fonctionné pour moi.

53
répondu GuitarWorker 2013-06-18 15:06:47

ce CSS est ce qui a finalement fonctionné pour moi en conjonction avec un linefeed dans mon éditeur:

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

trouvé ici: comment faire pour que Twitter bootstrap tooltips ait plusieurs lignes?

27
répondu Dan 2017-05-23 12:34:27

il suffit d'ajouter un attribut de données

data-html= "true"

et vous pouvez y aller.

par exemple. usage:

<i data-html="true" class="tooltip ficon-help-icon" twipsy-content-set="true" data-original-title= "<b>Hello</b> Stackoverflow" </i>

cela a fonctionné dans la majorité des plugins tooltip que j'ai essayés jusqu'à présent.

27
répondu Siwalik 2018-02-26 19:12:49

donne \n entre le texte. Il fonctionne sur tous les navigateurs.

Example 
img.tooltip= " Your Text : \n"
img.tooltip += " Your text \n";

ça va marcher pour moi et c'est utilisé en code derrière.

Espère que cela fonctionnera pour vous

9
répondu Priyanka Thakur 2015-02-27 13:19:57
\n

avec le style

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

travaillait pour moi.

5
répondu klausf 2017-10-24 09:56:38

je l'ai trouvé. Cela peut être fait en faisant simplement comme ceci

<a ref="#" title="First Line
                  Second Line
                  Third line">Hover Me</a>
4
répondu Aakash Chakravarthy 2010-07-27 05:37:15

&lt;br /&gt; a fait un travail si vous utilisez qTip

3
répondu Eduardo Molteni 2013-01-25 21:06:51

il est possible d'ajouter des linebreaks dans les tooltips HTML natifs en ayant simplement l'attribut title étalé sur plusieurs lignes.

cependant, je recommande d'utiliser un plugin tooltip jQuery tel que Q-Tip: http://craigsworks.com/projects/qtip / .

, C'est simple à configurer et à utiliser. Il existe aussi beaucoup de plugins javascript tooltip gratuits.

modifier: correction sur le premier déclaration.

2
répondu Ross 2010-07-27 06:58:12

pour moi, une solution en deux étapes (combinaison du formatage du titre et de l'ajout du style) a fonctionné, comme suit:

1) formater le title attrbiute:

<a ref="#" title="First Line
                  Second Line
                  Third line">Hover Me</a>

2) ajouter ce style à l'élément tips :

white-space: pre-line;

testé dans IE8, Firefox 22, et Safari 5.1.7.

2
répondu user2052547 2013-07-08 14:55:13

la version javascript

depuis &#013; (html) est 0D (hex), cela peut être représenté comme '\u000d'

str = str.replace(/\n/g, '\u000d');

en outre,

partager avec vous les gars un filtre AngularJS qui remplace \n avec ce caractère grâce aux références dans le autres réponses

app.filter('titleLineBreaker', function () {
    return function (str) {
        if (!str) {
            return str;
        }

        return str.replace(/\n/g, '\u000d');
    };
});

utilisation

<div title="{{ message | titleLineBreaker }}"> </div>
2
répondu Jossef Harush 2017-05-23 11:47:23

il suffit d'ajouter des données-html= "true"

<a href="#" title="Some long text <br/> Second line text \n Third line text" data-html="true">Hover me</a>
2
répondu Babo Darbinyan 2017-10-22 17:05:56

bien si vous utilisez utilitaire Tooltip jQuery , puis dans " jQuery-ui.js "Javascript file trouver le texte suivant:

tooltip.find(".ui-tooltip-content").html(content);

et mettez au-dessus de cela

content=content.replace(/\&lt;/g,'<').replace(/\&gt;/g,'>');

j'espère que cela fonctionnera aussi pour vous.

1
répondu user2160658 2013-05-13 14:00:10

la solution pour moi était http://jqueryui.com/tooltip / :

et ici le code (la partie du script qui fait <br/> est "content:"):

HTML HEAD

<head runat="server">
    <script src="../Scripts/jquery-2.0.3.min.js"></script>
    <link href="Content/themes/base/jquery-ui.css" rel="stylesheet" />
    <script src="../Scripts/jquery-ui-1.10.3.min.js"></script>
<script>
    /*Position:
      my =>  at
      at => element*/
    $(function () {
        $(document).tooltip({
            content: function() {
                var element = $( this );
                if ( element.is( "[title]" ) ) {
                    return element.attr( "title" );
                }

            },
            position: { my: "left bottom-3", at: "center top" } });
    });
</script>
</head>

contrôle ASPX ou HTML

<asp:TextBox ID="Establecimiento" runat="server" Font-Size="1.3em" placeholder="Establecimiento" title="Texto 1.<br/>TIP: texto 2"></asp:TextBox>

Espérons que cela aide quelqu'un

0
répondu Diego P 2013-09-04 16:29:57

Grater than Jquery UI 1.10 n'est pas compatible pour utiliser l'étiquette html à l'intérieur de l'attribut title parce que son html non valide.

donc la solution alternative est d'utiliser l'option tooltip content. Se référer à http://api.jqueryui.com/tooltip/#option-content

0
répondu Jaison 2014-04-10 05:38:54

Utiliser

&#013

il ne devrait pas y avoir de caractère.

0
répondu user1464581 2015-03-03 16:18:55

si vous utilisez jquery-ui 1.11.4:

var tooltip = $.widget( "ui.tooltip", {
    version: "1.11.4",
    options: {
        content: function() {
            // support: IE<9, Opera in jQuery <1.7
            // .text() can't accept undefined, so coerce to a string
            var title = $( this ).attr( "title" ) || "";
            // Escape title, since we're going from an attribute to raw HTML
Replace-->  //return $( "<a>" ).text( title ).html();
by -->      return $( "<a>" ).html( title );
             },
0
répondu peter 2016-02-04 15:43:56
AngularJS with Bootstrap UI Tolltip (uib-tooltip), has three versions of tool-tip:

uib-info-bulle, uib-tooltip-modèle et uib-tooltip-html

- uib-tooltip takes only text and will escape any HTML provided
- uib-tooltip-html takes an expression that evaluates to an HTML string
- uib-tooltip-template takes a text that specifies the location of the template

dans mon cas, j'ai opté pour uib-tooltip-html et il y a trois parties à cela:

  1. configuration
  2. contrôleur
  3. HTML

exemple:

(function(angular) {

//Step 1: configure $sceProvider - this allows the configuration of $sce service.

angular.module('myApp', ['uib.bootstrap'])
       .config(function($sceProvider) {
           $sceProvider.enabled(false);
       });

//Step 2: Set the tooltip content in the controller

angular.module('myApp')
       .controller('myController', myController);

myController.$inject = ['$sce'];

function myController($sce) {
    var vm = this;
    vm.tooltipContent = $sce.trustAsHtml('I am the first line <br /><br />' +
                                         'I am the second line-break');

    return vm;
}

 })(window.angular);

//Step 3: Use the tooltip in HTML (UI)

<div ng-controller="myController as get">
     <span uib-tooltip-html="get.tooltipContent">other Contents</span>
</div>

pour plus d'information, veuillez cocher ici

0
répondu omostan 2018-01-11 11:42:15

à l'Aide .html() au lieu de .texte() a travaillé pour moi. Par exemple

.html("This is a first line." + "<br/>" + "This is a second line.")
0
répondu Raj Stha 2018-02-23 03:50:14

utiliser &#13; devrait fonctionner (j'ai testé dans Chrome , Firefox et Edge ):

let users = [{username: 'user1'}, {username: 'user2'}, {username: 'user3'}];
let favTitle = '';
for(let j = 0; j < users.length; j++)
    favTitle += users[j].username + "&#13;";

$("#item").append('<i title="In favorite users: &#13;' + favTitle + '">Favorite</i>');
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id = item></div>
0
répondu Nourein 2018-04-09 07:41:24