Come posso utilizzare un ritorno a capo in una descrizione comandi HTML?


330

Attualmente sto aggiungendo descrizioni dettagliate al nostro sito e mi piacerebbe (senza dover ricorrere a un plugin jQuery whiz-bang, so che ce ne sono molti!) Utilizzare i ritorni a capo per formattare la descrizione comandi.

Per aggiungere il suggerimento sto usando l' titleattributo. Ho guardato in giro i soliti siti e usando il modello base di:

<a title='Tool?Tip?On?New?Line'>link with tip</a>

Ho provato a sostituire il ?con:

  • <br />
  • &013; / &#13;
  • \r\n
  • Environment.NewLine (Sto usando C #)

Nessuna delle precedenti funzioni. È possibile?


È piuttosto complicato, ma potrebbe esserci una soluzione alternativa. Cambia tutti gli spazi nel tuo titolo in uno spazio non-break &nbsp;. Quindi inserisci gli spazi dove vuoi che la linea si interrompa. Potrebbe anche essere necessario aggiungere un gruppo di &nbsp;personaggi prima del tuo spazio (interruzione di riga).
jumxozizi,

Risposte:


292

È così semplice che ti prenderai a calci ... premi Invio!

<a title='Tool
Tip
On
New
Line'>link with tip</a>

Firefox non visualizzerà affatto tooltip multilinea - sostituirà le newline con nulla.


69
Questa risposta obsoleti, Firefox fa a capo di visualizzazione in titoli ora (sto usando v25). Funziona con \n, \u000Ae \x0A.
Halcyon,

1
@Halcyon, solo per chiarire gli altri lettori, i tre codici sopra non sembrano essere HTML. Assomigliano più alle sequenze di escape della stringa di linguaggio derivate da C.
Sam

3
@Sam Non capisco cosa intendi con questo. \x0A(byte) è il codice carattere che corrisponde a una nuova riga. Lo stesso per \u000A(unicode). \nè anche newline.
Halcyon,

13
@Halcyon, ho provato a inserire quelle sequenze di escape in un titleattributo in Firefox e Chrome, e sono state appena presentate letteralmente nella descrizione comando. Successivamente, mi sono reso conto che probabilmente stavi usando quella sintassi come un modo per comunicare quali caratteri (non sequenze di escape) dovrebbero essere usati. Il mio commento è per far risparmiare tempo ad altre persone avvertendole di non provare a inserire le sequenze di escape nel loro HTML in modo che non perdano tempo come ho fatto io.
Sam,

4
@Tarquin Non funzionano in HTML, ma funzionano specificamente tra virgolette doppie di PHP perché è una caratteristica delle virgolette doppie di PHP.
Brilliand,

307

Le specifiche più recenti consentono il carattere di avanzamento riga, quindi una semplice interruzione di riga all'interno dell'attributo o dell'entità &#10;(notare che i caratteri #e ;sono obbligatori) sono OK.


4
non è supportato da Chrome ma per Firefox va bene!
Alaeddine,

5
Ho provato entrambi &#10;e &#13;. &#13;non onorerebbe le "interruzioni di linea" previste nella versione di Chrome 50.0.2661.94 (64 bit). &#10;funziona bene con le versioni attuali di Chrome, Firefox e Opera (tutte per Ubuntu a 64 bit) e Internet Explorer versione 11.0 e alcune modifiche su Windows.
Tass,

Questo è particolarmente utile per me perché stavo cercando di farlo sull'editor di post di Wordpress.
ed1nh0,

13
& # 10; funziona magnificamente su Internet Explorer, Firefox e Chrome. Grazie!
Daniel,

Per Chrome & # 013; ....... Esempio: title = "title1 & # 13; title2 & # 13; title3"
Malik Zahid

75

Prova il personaggio 10. Tuttavia, non funzionerà in Firefox. :(

Il testo viene visualizzato (se non del tutto) in modo dipendente dal browser. Piccoli tooltip funzionano sulla maggior parte dei browser. Tooltip lunghi e interruzioni di riga funzionano in IE e Safari (utilizzare &#10;o &#13;per una nuova riga). Firefox e Opera non supportano le nuove righe. Firefox non supporta tooltip lunghi.

http://modp.com/wiki/htmltitletooltips

Aggiornare:

A partire da gennaio 2015 Firefox supporta l'utilizzo &#13;dell'inserimento di un'interruzione di riga in un titleattributo HTML . Vedi l'esempio di frammento di seguito.

<a href="#" title="Line 1&#13;Line 2&#13;Line 3">Hover for multi-line title</a>


2
+1. Se decidi di utilizzare un plug-in jQuery, per un'accessibilità ottimale dovrebbe leggere il suo contenuto dall'attributo title e sostituire un carattere invisibile arbitrario con un'interruzione di riga in fase di esecuzione.
Kent Fredric,

+1. Roba interessante C'è ancora il problema di alcuni UA che tagliano il titolo quando appare - FF2 come ricordo, ma al giorno d'oggi è un problema minore.
Roborourke,

3
A partire da gennaio 2015 Firefox supporta l'utilizzo &#13;di un titleattributo per inserire un'interruzione di riga.
pseudosavant,

Non sono riuscito a far funzionare le interruzioni di riga in IE11 in un elemento SVG <title>. Qualcuno ha avuto più successo con quello? Ho provato i codici char sopra / sotto menzionati, nessuno sembra funzionare.
Ricorda il

64

Testato su IE, Chrome, Safari, Firefox (ultime versioni 27-11-2012):
&#13;

Funziona in tutti loro ...


Il primo metodo (rompere le righe nel codice) sembra più semplice, ma non sopporta i programmi js-code di formattazione automatica.
horiatu,

@Camilo Martin, newline e linefeed sono gli stessi su tutte le piattaforme. &#10;è l'avanzamento di riga unix così come è l'avanzamento di riga di Windows. Allo stesso modo, &#13;è la newline per entrambe le piattaforme. La specifica specifica il carattere linefeed (LF) che è ovviamente &#10;su entrambe le piattaforme (tutte?).
matty,

2
@matty Non sono sicuro di averti capito: la cosa corretta da usare sembra l'unix LF(che è un po 'un avanzamento di linea standard attraverso protocolli e strumenti), CRera usato solo dai vecchi Mac (e altre piattaforme oscure) e sembra fuori posto.
Camilo Martin,

Mi scuso per la confusa scelta delle parole. Quello che ho chiamato linefeed (n. 10) è in realtà una newline, sebbene spesso indicato come LF. Ciò che ho chiamato newline (n. 13) è in realtà un ritorno a capo. In ogni caso, il mio punto era che quei valori sono gli stessi su tutte le piattaforme. Il fatto che windows (usando entrambi questi caratteri per terminare una linea) e mac (usando il carattere "sbagliato" per terminare una linea) dovrebbe essere irrilevante rispetto a quale entità HTML deve essere usata in un attributo title. Le specifiche dicono &#10;, anche se apparentemente &#13;funziona anche in molte circostanze.
matty,

2
semplice & # 13; non funziona per Chrome su Linux. La sequenza & # 13; & # 10; lo fa, tuttavia.
Sam Watkins,

51

Vale anche la pena ricordare che se si imposta l'attributo title con Javascript in questo modo:

divElement.setAttribute("title", "Line one&#10;Line two");

Non funzionerà Devi sostituire quel decimale ASCII 10 con un esadecimale ASCII A nel modo in cui è sfuggito a Javascript. Come questo:

divElement.setAttribute("title", "Line one\x0ALine two");


@MaxNanasy Concordato, ed equivalgono ( \nsignifica comunque codice char 10)
rvighne

29

A partire da Firefox 12 ora supportano le interruzioni di riga utilizzando l'entità HTML del feed di riga: &#10;

<span title="First line&#10;Second line">Test</span>

Funziona in IE ed è corretto secondo le specifiche HTML5 per l' attributo title .


16

Se stai usando jQuery:

$(td).attr("title", "One \n Two \n Three");

funzionerà.

testato in IE-9: funzionante.


Ha funzionato in MVC 3 Esempio: @ Html.DropDownList ("RegId", null, "Select Region", new {title = "Seleziona una regione dal menu a discesa, \ nquesto è richiesto per ottenere un elenco di nomi di contratto validi" , @class = "form-control", onchange = "getContractNames (this)", style = "width: 200px;"})
Warren LaFrance

15

Come contributo alla &#013;soluzione, possiamo anche utilizzare le &#009schede se hai mai bisogno di fare qualcosa del genere.

<button title="My to-do list:&#013;&#009;-Item 2&#013;&#009;-Item 3&#013;&#009;-Item 4&#013;&#009;&#009;-Subitem 1">TEST</button>

dimostrazione

inserisci qui la descrizione dell'immagine


8

&#13; funzionerà su tutti i principali browser (incluso IE)


13
Questa risposta è obsoleta; & # 13; funziona anche su Chrome e altri browser.
SaeX,

7

So di essere in ritardo alla festa, ma per coloro che vogliono solo vederlo funzionare, ecco una demo: http://jsfiddle.net/rzea/vsp6840b/3/

HTML utilizzato:

<a href="#" title="First Line&#013;Second Line">Multiline Tooltip</a>
<br>
<br>
<a href="#" title="List:
  • List item here
  • Another list item here
  • Aaaand another list item, lol">Unordered list tooltip</a>

2
La risposta più aggiornata e funziona alla grande su Firefox. Grazie.
Marwan مروان

6

Non ci credo. Firefox 2 taglia comunque i titoli dei collegamenti lunghi e dovrebbero davvero essere usati solo per trasmettere una piccola quantità di testo di aiuto. Se hai bisogno di più testo esplicativo, suggerirei che appartenga a un paragrafo associato al link. È quindi possibile aggiungere il codice javascript del tooltip per nascondere quei paragrafi e mostrarli come suggerimenti al passaggio del mouse. Questa è la soluzione migliore per far funzionare IMO cross-browser.


6

&#xD; <----- Questo è il testo necessario per inserire Carry Return.


1
Funziona in tutti i browser :)
MonoThreaded il

6

Su Chrome 16, e possibilmente versioni precedenti, puoi utilizzare "\ n". Come sidenote, funziona anche "\ t"


6

Avevamo un requisito in cui dovevamo testare tutti questi, ecco cosa desidero condividere

document.getElementById("tooltip").setAttribute("title", "Tool\x0ATip\x0AOn\x0ANew\x0ALine")
<p title='Tool
Tip
On
New
Line'>Tooltip with <pre>
  new 
  line</pre> Works in all browsers</p>
<hr/>

<p title="Tool&#13;Tip&#13;On&#13;New&#13;Line">Tooltip with <code>&amp;#13;</code> Not works Firefox browsers</p>
<hr/>

<p title='Tool&#10;Tip&#10;On&#10;New&#10;Line'>Tooltip with <code>&amp;#10;</code> Works in some browsers</p>
<hr/>

<p title='Tool&#x0aTip&#x0aOn&#x0aNew&#x0aLine'>Tooltip with <code>&amp;#xD;</code> May work in some browsers</p>
<hr/>

<p id='tooltip'>Tooltip with <code>document.getElementById("tooltip").setAttribute("title", "Tool\x0ATip\x0AOn\x0ANew\x0ALine")</code> May work in some browsers</p>
<hr/>


<p title="List:
  • List item here
  • Another list item here
  • Aaaand another list item, lol">Tooltip with <code></code>Unordered list tooltip</p>
<hr/>


<p title='Tool\nTip\nOn\nNew\nLine'>Tooltip with <code>\n</code> May not work in modern browsers</p>
<hr/>

<p title='Tool\tTip\tOn\tNew\tLine'>Tooltip with <code>\t</code> May not work in modern browsers</p>
<hr/>

<p title='Tool&#013;Tip&#013;On&#013;New&#013;Line'>Tooltip with <code>&amp;#013;</code> Works in most browsers</p>
<hr/>

Violino


6

Su Chrome 79, &#13; non funziona più.

Ho avuto successo con:

&#13;&#10;

Funziona con tutti i principali browser.



4

Usa questo:

<a title='Tool&#x0aTip&#x0aOn&#x0aNew&#x0aLine'>link with tip</a>

Puoi aggiungere una nuova riga al titolo usando questo &#x0a.


4

Usa JavaScript. Quindi compatibile con la maggior parte dei browser più vecchi. Utilizzare la sequenza di escape \ n per newline.

   document.getElementById("ElementID").title = 'First Line text \n Second line text'

Quale versione di Chrome? Funziona per me e sto usando Chrome.
Welshboy,

In realtà sto usando l'ultima versione di Chrome, tuttavia, dal momento che stavo lavorando su SVG Elements, non ha funzionato, non è OK.
NewPHPer

4

Questo &#013; dovrebbe funzionare se usi semplicemente un attributo title semplice.

su popst bootstrap, basta usare data-html="true" e usare html data-contentnell'attributo.

<div title="Hello &#013;World">hover here</div>


3

Dalle informazioni disponibili sull'accessibilità e sull'uso di descrizioni dei comandi che le rendono più grandi con l'uso di CR o interruzione di riga, si apprezza il fatto che i vari browser non possano / non concordino sulle nozioni di base, dimostra che a loro non importa molto dell'accessibilità.


2
Per una soluzione molto semplice per le descrizioni comandi personalizzate del browser, consultare kollermedia.at/archive/2008/03/24/easy-css-tooltip/…
Dave,

@Dave Questo è un bel link, tuttavia l'interruzione di linea nella demo avviene a causa dell'attributo width
Melsi,

3

Secondo questo articolo sul sito Web di W3C :

CDATA è una sequenza di caratteri dal set di caratteri del documento e può includere entità carattere. Gli interpreti dovrebbero interpretare i valori degli attributi come segue:

  • Sostituisci le entità carattere con caratteri,
  • Ignora feed di riga,
  • Sostituisci ogni ritorno a capo o scheda con un singolo spazio.

Ciò significa che (almeno) CR e LF non funzioneranno all'interno dell'attributo title. Ti suggerisco di usare un plugin tooltip. La maggior parte di questi plugin consente di visualizzare HTML arbitrario come descrizione comandi di un elemento.


1
Sì, lo so che non è ufficiale. Ti sbagli, comunque. Ciò non significa che non verranno visualizzati. Significa che le specifiche del W3C non indicano come dovrebbero essere visualizzate .... Lo scopo del post non era quello di suggerire che potevano essere usati per sostituire plugin più funzionali ... era più che mai un caso di degrado che può essere usato in qualsiasi altro modo.
penderi,

@ip: mi sbaglio in quanto i consigli di w3c aggiornati suggeriscono che i browser suddividono il contenuto attorno al personaggio LF. Tuttavia, i browser implementeranno questo comportamento alla fine.
Salman A

2

Tooltip dall'aspetto molto più bello possono essere creati manualmente e possono includere la formattazione HTML.

<!DOCTYPE html>
<html>
<style>
.tooltip {
    position: relative;
    display: inline-block;
    border-bottom: 1px dotted black;
}

.tooltip .tooltiptext {
    visibility: hidden;
    width: 120px;
    background-color: #555;
    color: #fff;
    text-align: center;
    border-radius: 6px;
    padding: 5px 0;
    position: absolute;
    z-index: 1;
    bottom: 125%;
    left: 50%;
    margin-left: -60px;
    opacity: 0;
    transition: opacity 0.3s;
}

.tooltip .tooltiptext::after {
    content: "";
    position: absolute;
    top: 100%;
    left: 50%;
    margin-left: -5px;
    border-width: 5px;
    border-style: solid;
    border-color: #555 transparent transparent transparent;
}

.tooltip:hover .tooltiptext {
    visibility: visible;
    opacity: 1;
}
</style>
<body style="text-align:center;">

<h2>Tooltip</h2>
<p>Move the mouse <a href="#" title="some text
more&#13;&#10;and then some">over</a> the text below:</p>

<div class="tooltip">Hover over me
<span class="tooltiptext">Tooltip text
some <b>more</b><br/>
<i>and</i> more</span>
</div>

<div class="tooltip">Each tooltip is independent
<span class="tooltiptext">Other tooltip text
some more<br/>
and more</span>
</div>

</body>
</html>

Questo è tratto dal post di w3schools su questo. Sperimenta con il codice sopra qui .


1

Sintassi del rasoio

Nel caso di ASP.NET MVC puoi semplicemente archiviare il titolo come variabile come funziona \r\ne funzionerà.

@{ 
    var logTooltip = "Sunday\r\nMonday\r\netc.";
}

<h3 title="@logTooltip">Logs</h3>

0

hack ma funziona - (testato su Chrome e dispositivi mobili)

aggiungi solo spazi di interruzione fino a quando non si interrompe: potresti dover limitare la dimensione della descrizione comando in base alla quantità di contenuto, ma per i messaggi di testo di piccole dimensioni funziona:

&nbsp;&nbsp; etc

Ho provato tutto sopra e questa è l'unica cosa che ha funzionato per me -


0

Ho provato con "" per visualizzare il testo del titolo in una nuova riga e funziona come un incantesimo


0

Sono su Firefox 68.7.0esr e il &#013;non funziona. Rompere le linee <CR>ha funzionato, quindi vado avanti con questo, dal momento che è semplice e avanzato. vale a dire

<option title="Constraint PSC/SCS/Activity
Definition Constraint Checker
Database Start Notifier">CnCk

-1

usare data-html="true"e applicare <br>.


1
Questo non fa parte delle specifiche. Deve essere un plug
TJ
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.