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

В настоящее время я использую функцию ниже для создания текста, который будет отображаться с помощью плагина всплывающей подсказки начальной загрузки. Почему многострочные подсказки работают только с <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

5 ответов

Решение

Ты можешь использовать 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 они должны быть настоящими символами новой строки. Кроме того, вы можете использовать закодированные переводы строк &#013;, но это, вероятно, даже менее желательно, чем использование <br>"S.

Вы можете использовать свойство 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})

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

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

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

Если вы используете 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/

В 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>!');

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

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

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

Другие вопросы по тегам