Agregar salto de línea dentro de la información sobre herramientas

170

¿Cómo se pueden agregar saltos de línea dentro de una información sobre herramientas HTML?

Intenté usar <br/>y \ndentro de la información sobre herramientas de la siguiente manera:

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

Sin embargo, esto fue inútil y pude ver el texto literal <br/>y \ndentro de la información sobre herramientas. Cualquier sugerencia será de ayuda.

Aakash Chakravarthy
fuente
3
He tenido la misma pregunta: stackoverflow.com/questions/3320081/…
San
1
use <pre> data-html = "true" </pre> Ref y gracias a: stackoverflow.com/a/19001875/2278891
Sunit
En asp.net (C # .NET 4.5 Framework), agregar Environment.NewLinetrabajos para agregar un salto de línea desde el lado del código ... sin complicaciones ... sin complicaciones ...
Dan B

Respuestas:

271

Simplemente use el código de entidad &#013;para un salto de línea en un atributo de título.

Fred Senese
fuente
17
si el código de entidad & # 013; no funciona, prueba & # 10; Estoy usando Linux y Chrome no estoy seguro acerca de otros navegadores
Krishna
3
Intenté esto y funciona cuando lo inyecto usando el elemento de inspección, pero no cuando lo incluyo en mi html y lo implemento con este personaje. ¿Alguna razón obvia que podría estar perdiendo?
Riaan Schutte
1
Para mí &#10no funciona para mí en Windows, Chrome v53. Pero &#013;funcionó bien.
Lucky
9
Acabo de usar ambas versiones, &#013;&#010;parece funcionar bastante bien :)
Phe0nix
66
& # 013; no funciona en Firefox v58. Sin embargo, & # 10 funciona bien. Usar la solución @ Phe0nix de usar ambos saltos de línea según sea necesario funciona bien para que funcione en Chrome, Microsoft Edge y Firefox.
Bastante genial
69

Simplemente agregue un atributo de datos

data-html = "verdadero"

y estás listo para irte.

P.ej. uso:

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

Ha funcionado en la mayoría de los complementos de información sobre herramientas que he probado hasta ahora.

siwalikm
fuente
3
data-html = "true" con <br /> en el texto del título funciona perfectamente.
viks
1
Ninguna de las soluciones anteriores funcionó para mí. Pero este funciona bien.
abby
64

El &#013;combinado con el estilo de espacio en blanco: pre-línea; trabajó para mi.

GuitarraTrabajador
fuente
3
Pasé un tiempo tratando de hacer que esto funcione. El hecho de que white-space: pre-line;se necesita el estilo está muy oculto.
Jim D
@JimD ¿a qué clase / elemento se debe aplicar la regla de estilo?
Judah Meek
Para mí, esto funciona bien sin ningún CSS personalizado en la información sobre herramientas.
ST-DDT
2
Este es el que buscas amigos.
Henrik Petterson
3
En realidad, el personaje debería ser &#010;: stackoverflow.com/questions/6502054/…
Henrik Petterson
10

Dar \nentre el texto. Funciona en todos los navegadores.

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

Esto funcionará para mí y se usa en el código detrás.

Espero que esto funcione para usted

Priyanka Thakur
fuente
10
\n

con el estilo

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

trabajó para mi.

klausf
fuente
4

Lo encontré. Se puede hacer simplemente haciendo así

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

La versión de javascript

Como &#013;(html) es 0D(hexadecimal), esto se puede representar como'\u000d'

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

Adicionalmente,

Compartiendo con ustedes un filtro AngularJS que reemplaza \ncon ese personaje gracias a las referencias en las otras respuestas

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

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

uso

<div title="{{ message | titleLineBreaker }}"> </div>
Jossef Harush
fuente
4

simplemente use \ n en el título y agregue este CSS

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

&lt;br /&gt; funcionó si está usando qTip

Eduardo Molteni
fuente
3

Simplemente agregue data-html = "true"

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

es posible agregar saltos de línea dentro de la información sobre herramientas HTML nativa simplemente haciendo que el atributo de título se extienda entre varias líneas.

Sin embargo, recomendaría usar un complemento de información sobre herramientas jQuery como Q-Tip: http://craigsworks.com/projects/qtip/ .

Es simple de configurar y usar. Alternativamente, también hay muchos complementos de información sobre herramientas de JavaScript gratuitos.

editar: corrección en la primera declaración.

Ross
fuente
2

Para mí, una solución de 2 pasos (combinación de formatear el título y agregar el estilo) funcionó de la siguiente manera:

1) Formatee el titleatributo:

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

2) Agregue este estilo al tipselemento:

white-space: pre-line;

Probado en IE8, Firefox 22 y Safari 5.1.7.

usuario2052547
fuente
Sin embargo, creo que es complicado tener líneas discontinuas en el código
Fandango68
2

Simplemente agregue este fragmento de código en su script:

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

y por supuesto como se menciona en las respuestas anteriores, data-htmldebería ser "true". Esto le permitirá usar etiquetas html y formatear dentro del valor del titleatributo.

codificarlo
fuente
+1, su solución funcionó. mi código de ejemplo: data-toggle="tooltip" data-html="true" title="some string <br/> some string".
Pranesh Janarthanan
Es bueno saber que 👍
código de arriba
1

Bueno, si está utilizando la utilidad Jquery Tooltip , en el archivo Javascript "jquery-ui.js" encuentre el siguiente texto:

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

y poner por encima de eso

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

Espero que esto también funcione para ti.

usuario2160658
fuente
1

Entonces, si está utilizando bootstrap4, esto funcionará.

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

Si está utilizando un proyecto de Django, también podemos mostrar datos dinámicos en información sobre herramientas como:

<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>
Mayank Chauhan
fuente
0

La solución para mí fue http://jqueryui.com/tooltip/ :

Y aquí el código (la parte del script que hace que <br/>Works sea "contenido:"):

HEAD HTML

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

Control ASPX o HTML

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

Espero que esto ayude a alguien

Diego P
fuente
0

Más importante que Jquery UI 1.10 no es compatible con el uso de la etiqueta html dentro del atributo title porque no es html válido.

Entonces, la solución alternativa es utilizar la opción de contenido de información sobre herramientas. Consulte: http://api.jqueryui.com/tooltip/#option-content

Jaison
fuente
0

Utilizar

&#013

No debería haber ninguno; personaje.

usuario1464581
fuente
0

si está utilizando 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 );
             },
Peter
fuente
0
AngularJS with Bootstrap UI Tolltip (uib-tooltip), has three versions of tool-tip:

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

En mi caso, opté por uib-tooltip-html y hay tres partes:

  1. configuración
  2. controlador
  3. HTML

Ejemplo:

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

Para más información, consulte aquí

omostan
fuente
0

Usar .html () en lugar de .text () funcionó para mí. Por ejemplo

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

el uso &#13;debería funcionar (lo he probado en Chrome , Firefox y 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>

Nourein
fuente
0

¡Hola, este código funcionará en todos los navegadores! Utilicé para la nueva línea en Chrome y Safari y ul li para 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;
            }
        }
abhinavxeon
fuente
0

Puede usar la información sobre herramientas de bootstrap y no olvide establecer la opción html en 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>
amina
fuente
-1

Simplemente use el código de entidad &#xA;para un salto de línea en un atributo de título.

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

Renote Gotecha
fuente
-1

Este CSS te ayudará.

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

or if you want in one line

    .tooltip-inner {
      max-width: 100%;
    }
Adir Harel
fuente