Как сделать так, чтобы всплывающие подсказки Twitter Bootstrap содержали несколько строк?


157

В настоящее время я использую функцию ниже для создания текста, который будет отображаться с помощью плагина всплывающей подсказки Bootstrap. Почему многострочные всплывающие подсказки только работают, <br>а не работают \n? Я предпочитаю, чтобы в атрибутах заголовка моих ссылок не было HTML.

Что работает

def tooltip(object)
  tooltip = ""
  object.each do |user|
    tooltip += "#{user.identifier}" + "<br>"
  end
  return tooltip
end

Что я хочу

def tooltip(object)
   tooltip = ""
   object.each do |user|
     tooltip += "#{user.identifier}" + "\n"
   end
   return tooltip
 end

1
Вы понимаете разницу между \ n и <br/> в HTML?
— Коул Джонсон

2
<br/> будет работать на стороне рендеринга html, в то время как / n будет отображать ваш html код только в новой строке
— rajesh kakawat

Я смотрел на некоторые другие сайты, и у них есть многострочные всплывающие подсказки без br
— Мэтью Хуэй

Ответы:


265

Вы можете использовать white-space:pre-wrapв подсказке. Это заставит всплывающую подсказку относиться к новым строкам. Строки будут по-прежнему переноситься, если они длиннее максимальной ширины контейнера по умолчанию.

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

http://jsfiddle.net/chad/TSZSL/52/

Если вы хотите предотвратить перенос текста, сделайте следующее.

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

http://jsfiddle.net/chad/TSZSL/53/

Ни один из них не будет работать с a \nв html, на самом деле они должны быть настоящими символами новой строки. В качестве альтернативы, вы можете использовать закодированные символы новой строки &#013;, но это, вероятно, даже менее желательно, чем использование <br>символов.


1
Теперь, как вы делаете это с поповером.
— aaa90210

1
@ aaa90210 ты можешь попробовать .popover-content { white-space:pre-wrap; }. В зависимости от вашего контента, .popover-content p { white-space:pre-wrap; }или что-то подобное, может выглядеть лучше.
— Чад фон Нау

Можно ли показывать переменные JSP во всплывающей подсказке, как это? Я пытался <a href="#" rel="tooltip" title="${aaa} ${bbb} ${ccc}" class="example">Show</a>. Но это дает: aaabbbccc (сцепленные строки).
— Зигимантус

1
.tooltip-inner {white-space: pre-line;} работает на меня.
— Кишор К

предварительная линия работала для меня - все остальные сделали текст не выровненным должным образом
— Адам Мойса

221

Вы можете использовать свойство html: http://jsfiddle.net/UBr6c/

My <a href="#" title="This is a<br />test...<br />or not" class="my_tooltip">Tooltip</a> test.

$('.my_tooltip').tooltip({html: true})

1
Вы не отметили Bootstrap 2.0.2 (js only)опцию в вашем jsFiddle, которая делает его не работающим при первом запуске (open). Отметьте и сохраните его, чтобы другие не подчинялись, чтобы ваш пример не работал.
— Трейдер

56

Если вы используете всплывающую подсказку Twitter Bootstrap для не связанного элемента, вы можете указать, что вам нужна многострочная подсказка непосредственно в HTML-коде без Javascript, используя только dataпараметр:

<span rel="tooltip" data-html="true" data-original-title="1<br />2<br />3">5</span>

Это всего лишь альтернативная версия ответа Косталес . Вся слава достается ему! :]


2
Почему вы говорите «не связывающий элемент»? Я попробовал это по ссылке, и она, кажется, работает нормально.
— ec2011

2
Ну ... я не помню! :] Через пять месяцев, думаю, я ошибся. Я также не знаю, почему это не должно работать над ссылками. Извините ...
— Трейдер

1
Это сработало для меня, особенно если вы запускаете всплывающие подсказки с помощью javascript, это будет загружено в сам элемент, спасибо!
— Лев

16

Если вы используете Angular UI Bootstrap, вы можете использовать всплывающую подсказку с синтаксисом html: tooltip-html-unsafe

например, обновление до угловой версии 1.2.10 и angular-ui-bootstrap 0.11: http://jsfiddle.net/aX2vR/1/

старый: http://jsfiddle.net/8LMwz/1/



0

Решение CSS для Angular Bootstrap - это

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

Нет необходимости использовать родительский элемент или селектор класса, если вам не нужно ограничивать его использование. Копировать / вставить, и это правило будет применяться ко всем подкомпонентам

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.