2013-08-29 18 views
43

Próbuję wyświetlić trochę długiego tekstu w etykiecie bootstrap programu Twitter. Jak widać na poniższym obrazku, rzeczy nie idą w miażdżący sposób. Czy ktoś ma łatwą poprawkę dla tekstu, który przepełnia etykietę ładowania początkowego?Wyświetlanie długiego tekstu w podpowiedzi Bootstrap

tooltip overflow

EDIT (kod dodaje wymagane):

W moim kontrolera:

<a href='" + Url.Action("Index", "PP", new {id = productRow.ProductGuid, area = ""}) + "' " + 
      ((blTruncated) ? "class='auto-tooltip' title='" + productRow.ProductName.Replace("'", "") : "") + "'>" + 
      productName + "</a> 

Moim zdaniem:

$('.auto-tooltip').tooltip(); 
+3

Czy możesz pokazać kod, którego używasz? –

+0

@ rink.attendant.6 kod dodany –

Odpowiedz

89

nie jestem całkiem pewien swojej kod,
tutaj jest przykładem z Wartość długości narzędzia wskazówka:

elementu:

<a href="#" rel="tooltip" title="Lorem ipsum dolor sit amet, consectetur adipiscing elit. Maecenas bibendum ac felis id commodo. Etiam mauris purus, fringilla id tempus in, mollis vel orci. Duis ultricies at erat eget iaculis.">Hover here please</a> 

JS:

$(document).ready(function() { 
    $("a").tooltip({ 
    'selector': '', 
    'placement': 'top', 
    'container':'body' 
    }); 
}); 

CSS

/*Change the size here*/ 
div.tooltip-inner { 
    max-width: 350px; 
} 

Demo: on JsBin.com

+6

Dzięki, brakuje podpowiedzi-wewnętrznej maksymalnej szerokości. Doceniony. –

+4

'div [class =" tooltip-inner "]' ?? Po raz pierwszy widzę, że ktoś wybiera taki element! Po prostu użyj 'div.tolltip-inner' –

+1

@AlirezaNoori, masz rację, właśnie zobaczyłem tego rodzaju składnię w pliku bootstrap.css podczas pisania odpowiedzi. Odpowiedź edytowana. – funerr

25

Jak zasugerował in the documentation, najprostszym sposobem, aby upewnić się, że etykietka nie owijać w ogóle jest użycie

 .tooltip-inner { 
      max-width: none; 
      white-space: nowrap; 
     } 

z tym, że nie trzeba się martwić o wartości wymiaru lub coś podobnego . Głównym problemem jest to, że jeśli masz bardzo długą linię tekstu, to po prostu zniknie z ekranu (jak widać w JSBin Example).

+0

Nice snippet ... –

+0

'white-space: nowrap;' jest tym czego mi brakowało, okrzyki! – Leo

+0

Usunąłem 'white-space: nowrap;' i wpisałem etykietkę z 1000 znaków. Wszystko działało dobrze w Firefoksie (ale problem zawsze był związany z limitem 512 IE), więc kiedy wypróbowałem go w IE, odłożyłem mój kursor i wzbogaciłem procesor - nie pojawiła się żadna etykietka. Zwariowany! Wszystko to z podpowiedzi. Szkoda, że ​​nie mogę umieścić linka do więcej informacji (które mogą wyskoczyć więcej informacji) w podpowiedzi. – MikeTeeVee

4

Można użyć tego źródła dla lepszych wyników:

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

enter image description here

2

Jako alternatywę do stylizacji .tooltip-inner w arkuszu stylów można dodać style bezpośrednio do tooltip poprzez modyfikację szablonu podpowiedzi .

W większości przypadków nie jest to dobry pomysł, ponieważ można zastosować style bezpośrednio do elementu, ale warto zauważyć, że jest to możliwe w tych niewielu przypadkach, w których jest to jedyna opcja lub z jakiegoś powodu jest najlepsza opcja.

$(selector).tooltip({ 
    title: "Lorem ipsum ...", 
    template: '<div class="tooltip" role="tooltip"><div class="tooltip-arrow"></div><div class="tooltip-inner" style="max-width: none;"></div></div>', 
}); 

Albo, jako atrybut:

<span 
    data-toggle="tooltip" 
    title="Lorem ipsum ..." 
    data-template='<div class="tooltip" role="tooltip"><div class="tooltip-arrow"></div><div class="tooltip-inner" style="max-width: none;"></div></div>' 
    >Some abbreviation</span> 

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

template opcja:

Baza HTML do wykorzystania przy tworzeniu podpowiedź.

Etykieta narzędziowa title zostanie wprowadzona do .tooltip-inner.

.tooltip-arrow stanie się strzałką podpowiedzi.

Najbardziej zewnętrzny element opakowania powinien mieć klasę .tooltip.

Domyślnie:

'<div class="tooltip" role="tooltip"><div class="tooltip-arrow"></div><div class="tooltip-inner"></div></div>' 

Jako alternatywę można dodać własną klasę i styl szablonu klasy zwyczaj.

$(selector).tooltip({ 
    title: "Lorem ipsum ...", 
    template: '<div class="tooltip" role="tooltip"><div class="tooltip-arrow"></div><div class="tooltip-inner my-custom-tooltip"></div></div>', 
}); 

.my-custom-tooltip { 
    max-width: none; 
} 
Powiązane problemy