J'ajoute actuellement des info-bulles verbeuses à notre site, et j'aimerais (sans avoir à recourir à un plugin whiz-bang jQuery, je sais qu'il y en a beaucoup!) Utiliser des retours à la ligne pour formater l'info-bulle.
Pour ajouter le conseil, j'utilise l'attribut title
. J'ai parcouru les sites habituels et utilisé le modèle de base de:
<a title='Tool?Tip?On?New?Line'>link with tip</a>
J'ai essayé de remplacer le ?
par:
<br />
&013; /
\r\n
Environment.NewLine
(J'utilise C #)Aucune de ces solutions ne fonctionne. C'est possible?
C’est si simple que vous vous tirez dessus ... appuyez simplement sur Entrée!
<a title='Tool
Tip
On
New
Line'>link with tip</a>
Firefox n’affiche pas d’infos multi-lignes, mais ne remplacera rien par les nouvelles lignes.
Le dernière spécification autorise les sauts de ligne. Un simple retour à la ligne dans l'attribut ou l'entité
(notez que les caractères #
et ;
sont obligatoires) est correct. .
Essayez le personnage 10. Cela ne fonctionnera pas dans Firefox cependant. :(
Le texte est affiché (le cas échéant) en fonction du navigateur. Les petites info-bulles fonctionnent sur la plupart des navigateurs. Les longues info-bulles et les sauts de ligne fonctionnent dans IE et Safari (utilisez
ou
pour une nouvelle ligne). Firefox et Opera ne prennent pas en charge les retours à la ligne. Firefox ne prend pas en charge les info-bulles longues.
http://modp.com/wiki/htmltitletooltips
Depuis janvier 2015, Firefox prend en charge l'utilisation de
pour insérer un saut de ligne dans un attribut HTML title
. Voir l'exemple d'extrait ci-dessous.
<a href="#" title="Line 1 Line 2 Line 3">Hover for multi-line title</a>
Testé cela dans IE, Chrome, Safari, Firefox (dernières versions 2012-11-27):
Fonctionne dans chacun d'eux ...
Il convient également de mentionner si vous définissez l'attribut title avec Javascript, comme ceci:
divElement.setAttribute("title", "Line one Line two");
Ça ne marchera pas. Vous devez remplacer ce ASCII _ décimal 10 par un ASCII hexadécimal A de la façon dont il a été échappé avec Javascript. Comme ça:
divElement.setAttribute("title", "Line one\x0ALine two");
Depuis Firefox 12, ils prennent désormais en charge les sauts de ligne en utilisant l'entité HTML de saut de ligne:
<span title="First line Second line">Test</span>
Cela fonctionne dans IE et correspond aux spécifications HTML5 pour attribut title .
Si vous utilisez jQuery:
$(td).attr("title", "One \n Two \n Three");
marchera.
testé dans IE-9: travail.
Je sais que je suis en retard à la fête, mais pour ceux qui veulent seulement que cela fonctionne, voici une démo: http://jsfiddle.net/rzea/vsp6840b/ 3 /
HTML utilisé:
<a href="#" title="First Line
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>
fonctionnera sur tous les principaux navigateurs (IE inclus)
Nous avions besoin de tester tout cela, voici ce que je souhaite partager
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 Tip On New Line">Tooltip with <code>&#13;</code> Not works Firefox browsers</p>
<hr/>
<p title='Tool Tip On New Line'>Tooltip with <code>&#10;</code> Works in some browsers</p>
<hr/>
<p title='Tool
Tip
On
New
Line'>Tooltip with <code>&#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
Tip
On
New
Line'>Tooltip with <code>&#013;</code> Works in most browsers</p>
<hr/>
Pour qui
n'a pas fonctionné, vous devez styler l'élément sur lequel les lignes sont visibles sous la forme: white-space: pre-line;
À partir de cette réponse: https://stackoverflow.com/a/17172412/1460591
Sur Chrome 16 et éventuellement avec des versions antérieures, vous pouvez utiliser "\ n". En tant que sidenote, "\ t" fonctionne aussi
Je ne le crois pas. De toute façon, Firefox 2 coupe les titres de liens longs et ils ne devraient vraiment être utilisés que pour transmettre une petite quantité de texte d'aide. Si vous avez besoin de plus de texte d'explication, je suggérerais qu'il fasse partie d'un paragraphe associé au lien. Vous pouvez ensuite ajouter le code javascript des info-bulles pour masquer ces paragraphes et les afficher sous forme d'infobulles en survol. C’est votre meilleur pari pour le faire fonctionner à travers l’OMI multi-navigateurs.

<----- C'est le texte nécessaire pour insérer Carry Return.
Il suffit d'utiliser JavaScript. Alors compatible avec la plupart des navigateurs et les plus anciens. Utilisez la séquence d'échappement\n pour la nouvelle ligne.
document.getElementById("ElementID").title = 'First Line text \n Second line text'
Il suffit d'utiliser ceci:
<a title='Tool
Tip
On
New
Line'>link with tip</a>
Vous pouvez ajouter une nouvelle ligne sur le titre en utilisant ce 

.
Selon ce article sur le site Web du W3C :
CDATA est une séquence de caractères du jeu de caractères du document et peut inclure des entités de caractères. Les agents d'utilisateur doivent interpréter les valeurs d'attribut comme suit:
- Remplacer les entités de caractères par des caractères,
- Ignorer les sauts de ligne,
- Remplacez chaque retour ou chaque onglet par un seul espace.
Cela signifie que (au moins) CR et LF ne fonctionneront pas dans l'attribut title. Je vous suggère d'utiliser un plugin d'aide sur les infobulles. La plupart de ces plugins permettent d'afficher du HTML arbitraire sous forme d'infobulle d'un élément.
Les informations disponibles sur l’accessibilité et l’utilisation des info-bulles les agrandissant avec l’utilisation de CR ou de sauts de ligne sont appréciées, le fait que les différents navigateurs ne puissent pas/ne seront pas d’accord sur les éléments de base montre qu’ils ne se soucient guère de l’accessibilité.
Ce 
devrait fonctionner si vous utilisez simplement un attribut title.
sur bootstrap popovers, utilisez simplement data-html="true"
et utilisez html dans l'attribut data-content
.
<div title="Hello 
World">hover here</div>
Des info-bulles plus esthétiques peuvent être créées manuellement et inclure le formatage 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 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>
Ceci est pris de le post de w3schools à ce sujet. Expérimentez avec le code ci-dessus .
syntaxe de rasoir
Dans le cas d'ASP.NET MVC, vous pouvez simplement stocker le titre sous forme de variable. Utilisez \r\n
et tout fonctionnera.
@{
var logTooltip = "Sunday\r\nMonday\r\netc.";
}
<h3 title="@logTooltip">Logs</h3>
bidouille mais fonctionne - (testé sur chrome et mobile)
n'ajoutez pas d'espaces de pause jusqu'à la rupture - vous devrez peut-être limiter la taille de l'info-bulle en fonction de la quantité de contenu, mais cela fonctionne pour les petits messages texte:
etc
Tout essayé ci-dessus et c'est la seule chose qui a fonctionné pour moi -