Как сделать так, чтобы всплывающие подсказки Twitter Bootstrap содержали несколько строк?
В настоящее время я использую функцию ниже для создания текста, который будет отображаться с помощью всплывающей подсказки Bootstraps. Почему многострочные подсказки работают только с <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
Вы можете использовать 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/
Ни один из них не будет работать с \n
в html, они должны быть фактическими символами новой строки. В качестве альтернативы вы можете использовать кодированные строки новой строки 
, но это, вероятно, еще менее желательно, чем использование <br>
.
Ответ 2
Вы можете использовать свойство 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})
Ответ 3
Если вы используете подсказку Twitter Bootstrap на элементе non-link, вы можете указать, что вы хотите многострочную подсказку непосредственно в HTML-коде, без Javascript, используя только параметр data
:
<span rel="tooltip" data-html="true" data-original-title="1<br />2<br />3">5</span>
Это просто альтернативная версия ответа на оплату. Вся слава идет к нему!:]
Ответ 4
Если вы используете Angular UI Bootstrap, вы можете использовать подсказку с синтаксисом html: tooltip-html-unsafe
например.
обновить до Angular 1.2.10 и angular -ui-bootstrap 0.11:
http://jsfiddle.net/aX2vR/1/
старый: http://jsfiddle.net/8LMwz/1/
Ответ 5
В Angular UI Bootstrap 0.13.X, tooltip-html-unsafe устарел. Теперь вы должны использовать tooltip-html и $sce.trustAsHtml() для создания всплывающей подсказки с помощью html.
https://github.com/angular-ui/bootstrap/commit/e31fcf0fcb06580064d1e6375dbedb69f1c95f25
<a href="#" tooltip-html="htmlTooltip">Check me out!</a>
$scope.htmlTooltip = $sce.trustAsHtml('I\'ve been made <b>bold</b>!');
Ответ 6
Решение CSS для Angular Bootstrap - это
::ng-deep .tooltip-inner {
white-space: pre-wrap;
}
Нет необходимости использовать родительский элемент или селектор класса, если вам не нужно ограничивать его использование. Копировать/вставить, и это правило будет применяться ко всем подкомпонентам
Ответ 7
-
/*FOR ALLOWING THE WHITESPACE IN TOOLTIP*/.tooltip-inner { white-space: pre-wrap; }
-
title="Line Line Line 3
ИСПОЛЬЗУЙТЕ ЭТУ КОМБИНАЦИЮ. ЭТО РАБОТАЕТ ДЛЯ МЕНЯ.