Tambahkan jeda baris dalam tooltips

170

Bagaimana jeda baris dapat ditambahkan dalam tooltip HTML?

Saya mencoba menggunakan <br/>dan \ndi dalam tooltip sebagai berikut:

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

Namun, ini tidak berguna dan saya bisa melihat teks literal <br/>dan \ndi dalam tooltip. Setiap saran akan sangat membantu.

Aakash Chakravarthy
sumber
3
Saya punya pertanyaan yang sama: stackoverflow.com/questions/3320081/…
San
1
gunakan <pre> data-html = "true" </pre> Ref dan terima kasih kepada: stackoverflow.com/a/19001875/2278891
Sunit
Dalam asp.net (C # .NET 4.5 Framework) menambahkan Environment.NewLinekarya untuk menambahkan jeda baris dari sisi kode ... tidak repot .. tidak muss ...
Dan B

Jawaban:

271

Cukup gunakan kode entitas &#013;untuk linebreak dalam atribut title.

Fred Senese
sumber
17
jika kode entitas & # 013; tidak berfungsi, coba & # 10; saya menggunakan linux dan chrome tidak yakin tentang browser lain
Krishna
3
Saya mencoba ini dan berfungsi ketika saya menyuntikkannya menggunakan elemen inspeksi, tetapi tidak ketika saya memasukkannya ke dalam html saya dan menggunakannya dengan karakter ini. Adakah alasan jelas saya mungkin hilang?
Riaan Schutte
1
Bagi saya &#10din't berfungsi untuk saya di Windows, Chrome v53. Tetapi &#013;bekerja dengan baik.
Lucky
9
Saya hanya menggunakan kedua versi,, &#013;&#010;tampaknya bekerja dengan sangat baik :)
Phe0nix
6
& # 013; tidak berfungsi di Firefox v58. Namun & # 10 berfungsi dengan baik. Menggunakan solusi @ Phe0nix menggunakan kedua jeda baris sebagaimana yang diperlukan bekerja dengan baik untuk membuatnya bekerja di Chrome, Microsoft Edge dan Firefox.
Pretty Cool
69

Cukup tambahkan atribut data

data-html = "true"

dan kamu baik untuk pergi.

Misalnya. pemakaian:

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

Ini telah berfungsi di sebagian besar plugin tooltip yang telah saya coba sampai sekarang.

siwalikm
sumber
3
data-html = "true" dengan <br /> dalam teks judul berfungsi dengan baik.
viks
1
Tidak ada solusi di atas yang berfungsi untuk saya. Tapi yang ini berfungsi dengan baik.
Abby
64

The &#013;dikombinasikan dengan gaya white-space: pre-line; bekerja untukku.

GuitarWorker
sumber
3
Saya menghabiskan beberapa waktu untuk mencoba ini bekerja. Fakta bahwa white-space: pre-line;gaya yang dibutuhkan sangat tersembunyi.
Jim D
@ JimD kelas / elemen apa aturan gaya perlu diterapkan?
Judah Meek
Bagi saya ini berfungsi dengan baik tanpa custom css pada tooltips.
ST-DDT
2
Ini yang kamu cari teman.
Henrik Petterson
3
Sebenarnya, karakternya seharusnya &#010;: stackoverflow.com/questions/6502054/…
Henrik Petterson
30

CSS ini yang akhirnya bekerja untuk saya bersama dengan linefeed di editor saya:

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

Ditemukan di sini: Bagaimana membuat tooltips bootstrap Twitter memiliki beberapa baris?

Dan
sumber
@Dan Datang ke sini mencari bantuan. Teks tooltip saya berlanjut di luar kotak. Ini berhasil! +1
IRGeekSauce
10

Beri di \nantara teks. Ini bekerja di semua browser.

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

Ini akan bekerja untuk saya dan digunakan dalam kode di belakang.

Semoga ini berhasil untuk Anda

Priyanka Thakur
sumber
10
\n

dengan styling

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

bekerja untukku.

Klausf
sumber
4

Aku menemukannya. Itu bisa dilakukan hanya dengan melakukan seperti ini

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

Versi javascript

Karena &#013;(html) adalah 0D(hex), ini dapat direpresentasikan sebagai'\u000d'

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

Sebagai tambahan,

Berbagi dengan Anda filter AngularJS yang menggantikan \nkarakter itu berkat referensi di jawaban lain

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

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

pemakaian

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

cukup gunakan \ n pada judul dan tambahkan css ini

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

&lt;br /&gt; tidak berfungsi jika Anda menggunakan qTip

Eduardo Molteni
sumber
3

Cukup tambahkan data-html = "true"

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

adalah mungkin untuk menambahkan linebreak dalam tooltips HTML asli dengan hanya memiliki atribut judul yang tersebar di beberapa baris.

Namun, saya akan merekomendasikan menggunakan plugin tooltip jQuery seperti Q-Tip: http://craigsworks.com/projects/qtip/ .

Mudah diatur dan digunakan. Atau ada banyak plugin tooltip javascript gratis juga.

sunting: koreksi pada pernyataan pertama.

Ross
sumber
2

Bagi saya, solusi 2 langkah (kombinasi memformat judul dan menambahkan gaya) berfungsi, sebagai berikut:

1) Format titleattrbiute:

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

2) Tambahkan gaya ini ke tipselemen:

white-space: pre-line;

Diuji dalam IE8, Firefox 22, dan Safari 5.1.7.

pengguna2052547
sumber
Saya pikir itu berantakan, memiliki garis terputus-putus dalam kode
Fandango68
2

Cukup tambahkan potongan kode ini di skrip Anda:

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

dan tentu saja sebagaimana disebutkan dalam jawaban di atas data-htmlseharusnya "true". Ini akan memungkinkan Anda untuk menggunakan tag html dan memformat di dalam nilai titleatribut.

kode itu
sumber
+1, solusi Anda berhasil. contoh kode saya: data-toggle="tooltip" data-html="true" title="some string <br/> some string".
Pranesh Janarthanan
Senang mendengarnya code
kode
1

Nah jika Anda menggunakan utilitas Jquery Tooltip , maka dalam file Javascript "jquery-ui.js" temukan teks berikut:

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

dan letakkan di atas itu

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

Saya harap ini juga akan bekerja untuk Anda.

pengguna2160658
sumber
1

Jadi jika Anda menggunakan bootstrap4 maka ini akan berhasil.

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

Jika Anda menggunakan dalam proyek Django maka kami juga dapat menampilkan data dinamis di tooltips seperti:

<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>
Mayank chauhan
sumber
0

Solusi untuk saya adalah http://jqueryui.com/tooltip/ :

Dan di sini kode (bagian skrip yang membuat <br/>Karya adalah "konten:"):

KEPALA HTML

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

Kontrol ASPX atau HTML

<asp:TextBox ID="Establecimiento" runat="server" Font-Size="1.3em" placeholder="Establecimiento" title="Texto 1.<br/>TIP: texto 2"></asp:TextBox>

Semoga ini bisa membantu seseorang

Diego P
sumber
0

Grater dari Jquery UI 1.10 tidak mendukung untuk menggunakan tag html di dalam atribut title karena htmlnya tidak valid.

Jadi solusi alternatifnya adalah dengan menggunakan opsi konten tooltip. Rujuk - http://api.jqueryui.com/tooltip/#option-content

Jaison
sumber
0

Menggunakan

&#013

Seharusnya tidak ada; karakter.

pengguna1464581
sumber
0

jika Anda menggunakan 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 );
             },
Peter
sumber
0
AngularJS with Bootstrap UI Tolltip (uib-tooltip), has three versions of tool-tip:

uib-tooltip, uib-tooltip-template dan 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

Dalam kasus saya, saya memilih uib-tooltip-html dan ada tiga bagian:

  1. konfigurasi
  2. pengontrol
  3. HTML

Contoh:

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

Untuk informasi lebih lanjut, silakan cek di sini

omostan
sumber
0

Menggunakan .html () alih-alih .text () bekerja untuk saya. Sebagai contoh

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

Penggunaan &#13;harus berfungsi (Saya sudah menguji di Chrome , Firefox dan 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>

Nourein
sumber
0

Hai kode ini akan bekerja di semua browser !! saya digunakan untuk baris baru di chrome dan safari dan ul li untuk IE

 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;
            }
        }
abhinavxeon
sumber
0

Anda dapat menggunakan tooltip bootstrap, dan jangan lupa untuk mengatur opsi html menjadi 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>
amina
sumber
-1

Cukup gunakan kode entitas &#xA;untuk linebreak dalam atribut title.

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

Renish Gotecha
sumber
-1

Css ini akan membantu Anda.

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

or if you want in one line

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