在工具提示中添加换行符

时间:2010-07-27 04:44:28

标签: html tooltip newline

如何在HTML工具提示中添加换行符?

我尝试在工具提示中使用<br/>\n,如下所示:

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

但是,这没用,我可以在工具提示中看到文字<br/>\n。任何建议都会有所帮助。

27 个答案:

答案 0 :(得分:224)

只需在实体代码&#013;中使用标题属性中的换行符。

答案 1 :(得分:56)

&#013;结合了 white-space:pre-line; 这个风格。

答案 2 :(得分:46)

只需添加数据属性

即可
  

data-html =“true”

你很高兴。

EG。用法:

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

它在我目前尝试过的大多数工具提示插件中都有效。

答案 3 :(得分:27)

这个CSS最终在我的编辑器中与换行符一起为我工作:

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

在此处找到: How to make Twitter bootstrap tooltips have multiple lines?

答案 4 :(得分:9)

在文本之间添加\n。它适用于所有浏览器。

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

这对我有用,并且在后面的代码中使用。

希望这对你有用

答案 5 :(得分:6)

\n

带样式

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

为我工作。

答案 6 :(得分:4)

我找到了。这可以通过简单地这样做来完成

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

答案 7 :(得分:3)

如果您使用qTip

&lt;br /&gt;确实有效

答案 8 :(得分:3)

javascript版本

由于&#013;(html)为0D(十六进制),因此可以表示为'\u000d'

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

此外,

与你们分享一个 AngularJS过滤器,由于other answers

中的参考资料,用该字符取代\n
app.filter('titleLineBreaker', function () {
    return function (str) {
        if (!str) {
            return str;
        }

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

使用

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

答案 9 :(得分:3)

只需添加data-html =&#34; true&#34;

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

答案 10 :(得分:2)

可以通过简单地将title属性分布在多个行上来在原生HTML工具提示中添加换行符。

但是,我建议使用jQuery工具提示插件,例如Q-Tip:http://craigsworks.com/projects/qtip/

设置和使用简单。或者,也有很多免费的JavaScript工具提示插件。

编辑:对第一个陈述进行更正。

答案 11 :(得分:2)

对我来说,两步解决方案(格式化标题和添加样式的组合)有效,如下:

1)格式化title attrbiute:

<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中测试。

答案 12 :(得分: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>

答案 13 :(得分:1)

您可以使用引导工具提示,并且不要忘记将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>

答案 14 :(得分:1)

只需在脚本中添加以下代码段即可:

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

当然,如上所述,data-html应该是"true"。这将使您可以在title属性值内使用html标记和格式。

答案 15 :(得分:1)

使用&#13;应该有效(我已在 Chrome Firefox Edge 中进行了测试):

&#13;
&#13;
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>');
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id = item></div>
&#13;
&#13;
&#13;

答案 16 :(得分:1)

如果您使用 Jquery Tooltip实用程序,那么在“jquery-ui.js”中找到以下文本的Javascript文件:

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

并将其置于

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

我希望这对你也有用。

答案 17 :(得分: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 );
             },

答案 18 :(得分: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
  4. 示例:

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

    有关详情,请查看here

答案 19 :(得分:0)

使用.html()而不是.text()为我工作。例如

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

答案 20 :(得分:0)

使用

&#013

不应该是任何人;字符。

答案 21 :(得分:0)

只需在标题属性中使用实体代码&#xA;换行即可。

<a title="First Line &#xA;Second Line">Hover Me </a>

答案 22 :(得分:0)

Grater比Jquery UI 1.10不支持在title属性中使用html标签,因为它不是有效的html。

所以替代解决方案是使用工具提示内容选项。 请参阅 - http://api.jqueryui.com/tooltip/#option-content

答案 23 :(得分:0)

只需在标题中使用\ n并添加此CSS

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

答案 24 :(得分:0)

嗨,这段代码将在所有浏览器中都可以使用!  chrome和safari中的新行,而IE中的ul li

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

答案 25 :(得分:0)

我的解决方案是http://jqueryui.com/tooltip/

这里的代码(使<br/> Works的脚本部分是“content:”):

HTML HEAD

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

希望这有助于某人

答案 26 :(得分:-1)

此CSS将为您提供帮助。

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

or if you want in one line

    .tooltip-inner {
      max-width: 100%;
    }