2013-08-29 9 views
43

Sto tentando di visualizzare un po 'di testo lungo in un tooltip di avvio di Twitter. Come puoi vedere nella foto qui sotto, le cose non stanno andando in modo schiacciante. Qualcuno ha una soluzione facile per il testo che trabocca il suggerimento di bootstrap?Visualizzazione di testo lungo nel suggerimento Bootstrap

tooltip overflow

EDIT (codice aggiunto richiesto):

Nel mio controller:

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

A mio avviso:

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

Puoi per favore mostrare il codice che stai utilizzando? –

+0

@ rink.attendant.6 codice aggiunto –

risposta

89

Io non sono molto sicuro della tua codice,
ecco un esempio con un lungo valore tool-tip:

Elemento:

<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

Grazie, tooltip-inner max-width è ciò che mi mancava. Apprezzato. –

+4

'div [class =" tooltip-inner "]' ?? Questa è la prima volta che vedo qualcuno che seleziona un elemento come questo! Basta usare 'div.tolltip-inner' –

+1

@AlirezaNoori, hai ragione, ero abituato a vedere quel tipo di sintassi nel file bootstrap.css mentre scrivevo la risposta. Risposta modificata. – funerr

25

come suggerito in the documentation, il modo più semplice per garantire che il tooltip non va a capo a tutti è quello di utilizzare

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

Con questo, non devi preoccuparti di valori dimensionali o qualcosa di simile . Il problema principale è che se si dispone di una linea di testo molto lunga, verrà semplicemente visualizzata sullo schermo (come si può vedere nel numero JSBin Example).

+0

Nice snippet ... –

+0

'white-space: nowrap; 'è quello che mi mancava, evviva! – Leo

+0

Ho rimosso il 'white-space: nowrap;' e inserito in un tooltip di 1.000 caratteri. Ha funzionato bene in Firefox (ma il problema è sempre stato con il limite 512 di IE), quindi quando l'ho provato in IE, ha bloccato il mio cursore e ha spinato la mia CPU - non è apparso alcun suggerimento. Pazzo! Tutto ciò da un suggerimento. Peccato che non riesca a inserire un link per maggiori informazioni (che potrebbero far apparire più informazioni) nel tooltip. – MikeTeeVee

4

Si potrebbe utilizzare questa fonte per ottenere risultati migliori:

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

enter image description here

2

In alternativa al styling dei .tooltip-inner in un foglio di stile è possibile aggiungere gli stili direttamente al tooltip modificando il modello del tooltip .

Probabilmente questa non è una buona idea nella maggior parte dei casi poiché applicheremo gli stili direttamente all'elemento, ma vale la pena notare che questo è possibile per quei pochi casi in cui questa è l'unica opzione o per qualche motivo è la migliore opzione.

$(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>', 
}); 

Oppure, come un attributo:

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

HTML di base da utilizzare durante la creazione del tooltip.

I tooltip title verranno immessi nel .tooltip-inner.

.tooltip-arrow diventerà la freccia del tooltip.

L'elemento wrapper più esterno deve avere la classe .tooltip.

default è:

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

In alternativa, è possibile aggiungere la propria classe per il modello e lo stile della classe personalizzata.

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