web-dev-qa-db-ja.com

ツールチップ内に改行を追加します

HTMLツールチップ内で改行を追加するにはどうすればよいですか?

次のように、ツールチップ内で<br/>\nを使用してみました。

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

ただし、これは役に立たず、ツールチップ内にリテラルテキスト<br/>および\nが表示されました。任意の提案が役立ちます。

139

タイトル属性の改行には、エンティティコード&#013;を使用するだけです。

226
Fred Senese

&#013;をスタイルと組み合わせてwhite-space:pre-line;が機能しました。

56
GuitarWorker

データ属性を追加するだけです

data-html = "true"

そしてあなたは行ってもいいです。

例えば。使用法:

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

これは、今のところ私が試したツールチッププラグインのほとんどで機能しました。

46
siwalikm

このCSSは、最終的にエディターの改行と連動して機能しました。

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

ここにあります: Twitter bootstrapツールチップに複数の行を作成する方法?

27
Dan

テキストの間に\nを入れます。すべてのブラウザで動作します。

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

これは私のために機能し、コードビハインドで使用されます。

これがあなたのために働くことを願っています

9
Priyanka Thakur
\n

スタイリング付き

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

私のために働いた。

6
klausf

見つけた。こうすることで簡単にできます

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

JavaScriptバージョン

&#013;(html)は0D(hex)であるため、これは'\u000d'として表すことができます

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

加えて、

AngularJSフィルターを共有すると、 他の回答の参照のおかげで\nがその文字に置き換えられます

app.filter('titleLineBreaker', function () {
    return function (str) {
        if (!str) {
            return str;
        }

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

使用法

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

qTipを使用している場合、&lt;br /&gt;は機能しました

3
Eduardo Molteni

Data-html = "true"を追加するだけです

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

title属性を複数の行に広げることで、ネイティブHTMLツールチップ内に改行を追加できます。

ただし、Q-TipなどのjQueryツールチッププラグインを使用することをお勧めします。 http://craigsworks.com/projects/qtip/

セットアップと使用は簡単です。また、無料のjavascriptツールチッププラグインも多数あります。

編集:最初のステートメントの修正。

2
Ross

私にとって、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でテスト済み。

2
user2052547

&#13;を使用すると動作するはずです(ChromeFirefoxおよびEdgeでテストしました):

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

スクリプトに次のコードスニペットを追加するだけです。

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

そしてもちろん、上記の回答で述べたように、data-html"true"でなければなりません。これにより、title属性の値内でhtmlタグとフォーマットを使用できます。

1

Jquery Tooltip utilityを使用している場合、「jquery-ui.js」Javascriptファイルで次のテキストを見つけます。

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

そしてその上に置きます

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

これがあなたにも役立つことを願っています。

1
user2160658

.text()の代わりに.html()を使用するとうまくいきました。例えば

.html("This is a first line." + "<br/>" + "This is a second line.")
0
Raj Stha
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を選択しましたが、3つの部分があります:

  1. 構成
  2. コントローラ
  3. HTML

例:

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

詳細については、 こちらを確認してください

0
omostan

つかいます

&#013

あるべきではありません。キャラクター。

0
user1464581

私にとっての解決策は、 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>

これが誰かを助けることを願って

0
Diego P

タイトル属性の改行には、エンティティコード&#xA;を使用するだけです。

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

タイトルに\ nを使用して、このCSSを追加するだけです

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

Jquery UI 1.10よりもお粗末なHTMLは無効なため、title属性内でhtmlタグを使用することはサポートされていません。

そのため、代替ソリューションはツールチップコンテンツオプションを使用することです。参照- http://api.jqueryui.com/tooltip/#option-content

0
Jaison

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 );
             },
0
peter