Отображение длинного текста в всплывающей подсказке Bootstrap

Я пытаюсь отобразить немного длинного текста в подсказке twitter bootstrap. Как вы можете видеть на картинке ниже, все идет не круче. Кто-нибудь может легко исправить текст, который переполняет всплывающую подсказку?

tooltip overflow

EDIT (добавленный запрошенный код):

В моем контроллере:

<a href='" + Url.Action("Index", "PP", new {id = productRow.ProductGuid, area = ""}) + "' " + 
          ((blTruncated) ? "class='auto-tooltip' title='" + productRow.ProductName.Replace("'", "") : "") + "'>" + 
           productName + "</a>

На мой взгляд:

$('.auto-tooltip').tooltip();

Ответ 1

Я не совсем уверен в вашем коде,
Вот пример с длинным значением подсказки:

Элемент:

 <a href="#" rel="tooltip" title="Lorem ipsum dolor sit amet, consectetur adipiscing elit. Maecenas bibendum ac felis id commodo. Etiam mauris purus, fringilla id tempus in, mollis vel orci. Duis ultricies at erat eget iaculis.">Hover here please</a>

Js:

$(document).ready(function () {
  $("a").tooltip({
    'selector': '',
    'placement': 'top',
    'container':'body'
  });
});

Css:

/*Change the size here*/
div.tooltip-inner {
    max-width: 350px;
}

Демонстрация: на JsBin.com


Очевидно, вы можете изменить только .tooltip-inner в Bootstrap 4, спасибо @Felix Dombek

.tooltip-inner { max-width: ... }

Ответ 2

Как указано в в документации, самый простой способ убедиться, что всплывающая подсказка вообще не переносится, - это использовать

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

При этом вам не нужно беспокоиться о значениях измерений или о чем-либо подобном. Основная проблема в том, что если у вас есть очень длинная строка текста, она просто исчезнет с экрана (как вы можете видеть в примере JSBin).

Ответ 3

Вы можете использовать этот источник для лучших результатов:

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

enter image description here

Ответ 4

В качестве альтернативы стилизации .tooltip-inner в таблице стилей вы можете добавлять стили непосредственно к tooltip, изменяя шаблон подсказка.

Это, вероятно, не очень хорошая идея в большинстве случаев, поскольку вы будете применять стили непосредственно к элементу, но стоит отметить, что это возможно для тех немногих случаев, когда это единственный вариант или по какой-то причине является лучшим вариантом.

$(selector).tooltip({
  title: "Lorem ipsum ...",
  template: '<div class="tooltip" role="tooltip"><div class="tooltip-arrow"></div><div class="tooltip-inner" style="max-width: none;"></div></div>',
});

Или, как атрибут:

<span
  data-toggle="tooltip"
  title="Lorem ipsum ..."
  data-template='<div class="tooltip" role="tooltip"><div class="tooltip-arrow"></div><div class="tooltip-inner" style="max-width: none;"></div></div>'
  >Some abbreviation</span>

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

template:

Базовый HTML-код, который будет использоваться при создании всплывающей подсказки.

Всплывающая подсказка title будет введена в .tooltip-inner.

.tooltip-arrow станет стрелкой всплывающей подсказки.

Внешний элемент оболочки должен иметь класс .tooltip.

По умолчанию:

'<div class="tooltip" role="tooltip"><div class="tooltip-arrow"></div><div class="tooltip-inner"></div></div>'

В качестве альтернативы вы можете добавить свой собственный класс к шаблону и создать собственный класс.

$(selector).tooltip({
  title: "Lorem ipsum ...",
  template: '<div class="tooltip" role="tooltip"><div class="tooltip-arrow"></div><div class="tooltip-inner my-custom-tooltip"></div></div>',
});

.my-custom-tooltip {
  max-width: none;
}