Додайте розрив рядка в підказках


170

Як можна додавати розриви рядків у підказці HTML?

Я спробував з допомогою <br/>і \nв підказці наступним чином :

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

Однак це було марно, і я міг бачити буквальний текст <br/>і \nпід підказкою. Будь-які пропозиції будуть корисними.


3
Я «ве був один і той же питання: stackoverflow.com/questions/3320081 / ...
San

1
використовуйте <pre> data-html = "true" </pre> Ref та дякую: stackoverflow.com/a/19001875/2278891
Sunit

У asp.net (C # .NET 4.5 Framework) додавання Environment.NewLineпрацює на додавання розриву рядка з боку коду ... немає суєти .. немає мюс ...
Dan B

Відповіді:


270

Просто використовуйте код сутності &#013;для рядка рядка в атрибуті заголовка.


17
якщо код юридичної особи & # 013; не працює, спробуйте & # 10; Я використовую linux та chrome не впевнений у інших браузерах
Krishna

3
Я спробував це, і він працює, коли я вводить його за допомогою елемента перевірки, але не тоді, коли я включаю його в свій HTML і розгортаю його з цим символом. Якась явна причина, яку я можу бракувати?
Riaan Schutte

1
Для мене не &#10працює у Windows, Chrome v53. Але &#013;добре працював.
Лаки

9
Я просто використав обидві версії, &#013;&#010;здається, працює досить добре :)
Phe0nix

6
& # 013; не працює у Firefox v58. Однак & # 10 працює добре. Використання рішення @ Phe0nix використання обох розривів рядків, як потрібно, добре працює, щоб він працював у Chrome, Microsoft Edge та Firefox.
Досить

69

Просто додайте атрибут даних

data-html = "вірно"

і ти добре підеш.

Напр. використання:

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

Він працював у більшості плагінів підказок, які я пробував зараз.


3
data-html = "true" з заголовком тексту <br /> працює бездоганно.
вікс

1
Жодне з перерахованих вище рішень не працювало для мене. Але це добре працює.
Еббі

64

У &#013;поєднанні зі стилем білого простору: попередня лінія; працював на мене.


3
Я витратив деякий час, намагаючись домогтися цього. Те, що white-space: pre-line;потрібен стиль, дуже приховано.
Jim D

@JimD до якого класу / елемента потрібно застосувати правило стилю?
Judah Meek

Для мене це прекрасно працює без будь-яких спеціальних css на підказках.
ST-DDT

2
Це той, кого ви шукаєте друзів.
Генрік Петтерсон

3
Насправді персонаж повинен бути &#010;: stackoverflow.com/questions/6502054/…
Генрік Петтерсон

30

Цей CSS - це те, що нарешті спрацювало для мене у поєднанні з передачею рядків у моєму редакторі:

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

Знайдено тут: Як зробити так, щоб підказки завантажувального інструмента Twitter мали кілька рядків?


@День прийшов сюди, шукаючи допомоги. Мій текст підказки продовжувався поза рамкою. Це спрацювало! +1
IRGeekSauce

10

Наведіть \nміж текстом. Він працює у всіх браузерах.

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

Це буде працювати для мене, і він використовується в коді позаду.

Сподіваємось, це допоможе вам


10
\n

з укладкою

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

працював на мене.



4

Версія javascript

Оскільки &#013;(html) є 0D(hex), це можна представити як'\u000d'

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

В додаток,

Діліться з вами хлопцями фільтр AngularJS, який замінює \nцей символ завдяки посиланням в інших відповідях

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

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

використання

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

4

просто використовуйте \ n у заголовку та додайте цей css

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



2

можна додавати рядкові рядки в нативні підказки HTML, просто атрибут заголовка поширюється на змішані рядки.

Однак я рекомендую використовувати плагін підказки jQuery, такий як Q-Tip: http://craigsworks.com/projects/qtip/ .

Налаштування та використання просто. Крім того, існує багато безкоштовних плагінів підказки для JavaScript.

редагувати: виправлення першого твердження.


2

Для мене двоступеневе рішення (поєднання форматування заголовка та додавання стилю) спрацювало так:

1) Відформатуйте titleattrbiute:

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

2) Додайте цей стиль до tipsелемента:

white-space: pre-line;

Перевірено в IE8, Firefox 22 та Safari 5.1.7.


Я думаю, що безладно, щоб у коді були зламані рядки
Fandango68,

2

Просто додайте цей фрагмент коду у свій сценарій:

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

і звичайно, як було сказано вище, відповіді data-htmlповинні бути "true". Це дозволить вам використовувати теги html та форматування всередині значення titleатрибута.


+1, ваше рішення спрацювало. мій приклад коду: data-toggle="tooltip" data-html="true" title="some string <br/> some string".
Пранеш Джартартанан

Приємно почути це 👍
це

1

Добре, якщо ви використовуєте утиліту Jquery Tooltip , тоді у файлі Javascript знайдіть наступний текст у файлі Jaquery-ui.js:

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

і поставити вище цього

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

Сподіваюсь, це теж спрацює для вас.


1

Тож якщо ви використовуєте bootstrap4, це спрацює.

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

Якщо ви використовуєте проект Django, ми також можемо відображати динамічні дані у підказках, як-от:

<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

Для мене рішення було http://jqueryui.com/tooltip/ :

І ось код (частина скрипту, що створює <br/>Works, це "content:"):

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>

Керування ASPX або HTML

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

Сподіваюся, це допоможе комусь


0

Гратер, ніж Jquery UI 1.10, не підтримує використання тега html всередині атрибута заголовка, оскільки його недійсний html.

Тож альтернативним рішенням є використання параметра вмісту підказки. Посилання - http://api.jqueryui.com/tooltip/#option-content



0

якщо ви використовуєте 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 та 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

У моєму випадку я вибрав uib-tooltip-html і до нього є три частини:

  1. конфігурація
  2. контролер
  3. HTML

Приклад:

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

Для отримання додаткової інформації перегляньте тут


0

Використання .html () замість .text () працювало для мене. Наприклад

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

0

використання &#13;має працювати (я тестував у Chrome , Firefox та 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

Привіт, цей код буде працювати у всіх браузерах !! Я використовувався для нового рядка в chrome та safari та ul li для 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

Ви можете використовувати підказку для завантаження, і не забудьте встановити для параметра html значення 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

Цей css допоможе вам.

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

or if you want in one line

    .tooltip-inner {
      max-width: 100%;
    }
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.