Aggiungi un'interruzione di riga nelle descrizioni comandi


170

Come si possono aggiungere interruzioni di riga all'interno di una descrizione comandi HTML?

Ho provato a utilizzare <br/>e \nnella descrizione comando come segue:

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

Tuttavia, questo è stato inutile e ho potuto vedere il testo letterale <br/>e \nnella descrizione comandi. Eventuali suggerimenti saranno utili.


3
Ho avuto la stessa domanda: stackoverflow.com/questions/3320081/…
San

1
Utilizzare <pre> Dati-html = "true" </ pre> Ref e grazie a: stackoverflow.com/a/19001875/2278891
Sunit

In asp.net (C # .NET 4.5 Framework) l'aggiunta di Environment.NewLinelavori per aggiungere un'interruzione di riga dal lato del codice ... niente confusione ... niente confusione ...
Dan B

Risposte:


271

Basta usare il codice entità &#013;per un'interruzione di riga in un attributo title.


17
se codice entità & # 013; non funziona, prova & # 10; sto usando Linux e Chrome non sono sicuro di altri browser
Krishna

3
Ho provato questo e funziona quando lo inietto usando inspect element, ma non quando lo includo nel mio HTML e lo distribuisco con questo personaggio. Qualche ovvio motivo per cui potrei mancare?
Riaan Schutte,

1
Per me &#10non funziona per me in Windows, Chrome v53. Ma ha &#013;funzionato bene.
Lucky

9
Ho appena usato entrambe le versioni, &#013;&#010;sembra funzionare abbastanza bene :)
Phe0nix,

6
& # 013; non funziona in Firefox v58. Tuttavia, # 10 funziona bene. L'uso della soluzione @ Phe0nix di utilizzare entrambe le interruzioni di riga come richiesto funziona bene per farlo funzionare in Chrome, Microsoft Edge e Firefox.
Abbastanza fresco il

69

Aggiungi un attributo di dati

Dati-html = "true"

e sei a posto.

Per esempio. utilizzo:

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

Ha funzionato nella maggior parte dei plugin di tooltip che ho provato fino ad ora.


3
data-html = "true" con <br /> nel testo del titolo funziona perfettamente.
viks

1
Nessuna delle soluzioni sopra ha funzionato per me. Ma questo funziona bene.
abbazia

64

Il &#013;combinato con lo stile white-space: pre-line; ha funzionato per me.


3
Ho passato un po 'a cercare di farlo funzionare. Il fatto che lo white-space: pre-line;stile sia necessario è molto nascosto.
Jim D,

@JimD a quale classe / elemento deve essere applicata la regola di stile?
Judah Meek,

Per me questo funziona benissimo senza alcun css personalizzato su tooltip.
ST-DDT,

2
Questo è quello che stai cercando amici.
Henrik Petterson,

3
In realtà, il personaggio dovrebbe essere &#010;: stackoverflow.com/questions/6502054/…
Henrik Petterson,


10

Dare \ntra il testo. Funziona su tutti i browser.

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

Questo funzionerà per me ed è usato nel codice dietro.

Spero che questo funzioni per te


10
\n

con lo stile

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

ha funzionato per me.


4

L'ho trovato. Si può fare semplicemente facendo così

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

4

La versione javascript

Poiché &#013;(html) è 0D(hex), questo può essere rappresentato come'\u000d'

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

Inoltre,

Condividete con voi un filtro AngularJS che sostituisce \nquel personaggio grazie ai riferimenti nelle altre risposte

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

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

uso

<div title="{{ message | titleLineBreaker }}"> </div>

4

usa \ n nel titolo e aggiungi questo css

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


3

Aggiungi semplicemente data-html = "true"

<a href="#" title="Some long text <br/> Second line text \n Third line text" data-html="true">Hover me</a>

2

è possibile aggiungere interruzioni di riga all'interno delle descrizioni dei comandi HTML nativi semplicemente distribuendo l'attributo title su più righe.

Tuttavia, consiglierei di utilizzare un plug-in jQuery come Q-Tip: http://craigsworks.com/projects/qtip/ .

È semplice da configurare e utilizzare. In alternativa ci sono anche molti plug-in di tooltip javascript gratuiti.

modifica: correzione sulla prima istruzione.


2

Per me, una soluzione in 2 passaggi (combinazione di formattazione del titolo e aggiunta dello stile) ha funzionato come segue:

1) Formatta l' titleattrito:

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

2) Aggiungi questo stile tipsall'elemento:

white-space: pre-line;

Testato su IE8, Firefox 22 e Safari 5.1.7.


Penso che sia disordinato, avere linee spezzate nel codice
Fandango68,

2

Aggiungi questo frammento di codice nel tuo script:

    $(function () {
        $('[data-toggle="tooltip"]').tooltip()
    });

e naturalmente, come menzionato nelle risposte sopra, data-htmldovrebbe essere "true". Ciò ti consentirà di utilizzare tag html e formattazione all'interno del valore titledell'attributo.


+1, la tua soluzione ha funzionato. il mio codice di esempio: data-toggle="tooltip" data-html="true" title="some string <br/> some string".
Pranesh Janarthanan,

È bello sapere che 👍
codificalo

1

Bene se stai usando l' utilità Jquery Tooltip , nel file Javascript "jquery-ui.js" trova il seguente testo:

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

e metti sopra quello

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

Spero che questo funzioni anche per te.


1

Quindi se stai usando bootstrap4 allora funzionerà.

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

</style>

<script> 
    $(function () {
      $('[data-toggle="tooltip"]').tooltip()
    })
</script>

<a data-toggle="tooltip" data-placement="auto" title=" first line &#010; next line" href= ""> Hover me </a>

Se si utilizza nel progetto Django, possiamo anche visualizzare i dati dinamici in suggerimenti come:

<a class="black-text pb-2 pt-1" data-toggle="tooltip" data-placement="auto"  title="{{ post.location }} &#010; {{ post.updated_on }}" href= "{% url 'blog:get_user_profile' post.author.id %}">{{ post.author }}</a>

0

La soluzione per me era http://jqueryui.com/tooltip/ :

E qui il codice (la parte dello script che crea <br/>Works è "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>

Controllo ASPX o HTML

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

Spero che questo aiuti qualcuno


0

Gratting di Jquery UI 1.10 non supporta l'utilizzo del tag html all'interno dell'attributo title perché non è html valido.

Quindi la soluzione alternativa è utilizzare l'opzione del contenuto della descrizione comandi. Consultare: http://api.jqueryui.com/tooltip/#option-content



0

se stai usando 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
AngularJS with Bootstrap UI Tolltip (uib-tooltip), has three versions of tool-tip:

uib-tooltip, uib-tooltip-template e 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

Nel mio caso, ho optato per uib-tooltip-html e ci sono tre parti:

  1. configurazione
  2. controllore
  3. HTML

Esempio:

(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>

Per ulteriori informazioni, consultare qui


0

Usare .html () invece di .text () ha funzionato per me. Per esempio

.html("This is a first line." + "<br/>" + "This is a second line.")

0

l'uso &#13;dovrebbe funzionare (ho testato in Chrome , Firefox e 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

Ciao questo codice funzionerà in tutti i browser !! Ho usato per la nuova linea in Chrome e Safari e ul li per IE

 function genarateMultiLIneCode(){
        var =values["a","b","c"];
        const liStart = '<li>';
              const liEnd = '</li>';
              const bullet = '&#8226; ';     
              var mergedString = ' ';
              const unOrderListStart='<ul>'
              const unOrderListEnd='</ul>'
              const fakeNewline = '&#013;&#010;';
              for (let i = 0; i < values.length; i++) {
                   mergedString += liStart + bullet + values[i] + liEnd + fakeNewline;
              }
              const tempElement = document.createElement("div");
              tempElement.innerHTML = unOrderListStart + mergedString + unOrderListEnd;    
              return tempElement.innerText;
            }
        }

0

Puoi usare la descrizione del bootstrap e non dimenticare di impostare l'opzione html su true.

<div id="tool"> tooltip</div>
$('#tool').tooltip({
     title: 'line one' +'<br />'+ 'line two',
     html: true
});
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css">
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/js/bootstrap.min.js"></script>

-1

Basta usare il codice entità &#xA;per un'interruzione di riga in un attributo title.

<a title="First Line &#xA;Second Line">Hover Me </a>


-1

Questo css ti aiuterà.

    .tooltip {
      word-break: break-all;
    }

or if you want in one line

    .tooltip-inner {
      max-width: 100%;
    }
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.