如何在HTML工具提示中使用回车?

我目前在我们的网站中添加了详细的工具提示,我想(不必诉诸于一个聪明的jQuery插件,我知道有很多!)使用回车来格式化工具提示。

要添加提示,我使用title属性。 我浏览了通常的网站,并使用以下基本模板:

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

我试过替换? 有:

  • <br />
  • &013; /
  • \r\n
  • Environment.NewLine (我正在使用C#)

以上都不是。 可能吗?

这是如此简单,你会踢自己…只需按输入!

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

Firefox根本不会显示多行的工具提示 – 它将不会替代换行符。

最新的规范允许换行字符,所以在属性或实体内简单的换行符&#10; (注意字符#;是必需的)都可以。

这在所有当前的浏览器中都不起作用,所以请确保您的文本在删除换行符的情况下有意义。

尝试字符10.它不会在Firefox中工作。 🙁

文本以浏览器依赖的方式显示(如果有的话)。 小工具提示可在大多数浏览器上使用。 在IE和Safari中使用长工具提示和换行符(使用&#10;&#13;换一个新的换行符)。 Firefox和Opera不支持换行符。 Firefox不支持长工具提示。

http://modp.com/wiki/htmltitletooltips

更新:

截至2015年1月,Firefox支持使用&#13; 在HTML title属性中插入换行符。 看下面的代码片段。

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

在IE,Chrome,Safari,Firefox(最新版本2012-11-27)测试过
&#13;

在他们所有的作品…

另外值得一提的是,如果你使用JavaScript来设置title属性:

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

它不会工作。 你必须以它用Javascript转义的方式将ASCII十进制10替换为ASCII十六进制A. 喜欢这个:

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

从Firefox 12开始,他们现在使用换行HTML实体来支持换行符: &#10;

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

这适用于IE,根据title属性的HTML5规范是正确的。

如果你正在使用jQuery:

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

将工作。

在IE-9测试:工作。

作为贡献的&#013; 解决方案,我们也可以使用&#009标签,如果你需要做这样的事情。

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

我不相信。 Firefox 2无论如何都会修剪很长的链接标题,它们只能用来传递少量的帮助文本。 如果你需要更多的解释文字,我会建议它属于与链接相关的段落。 然后,您可以添加工具提示JavaScript代码来隐藏这些段落,并将其显示为悬停时的工具提示。 这是你最好的选择,让它跨浏览器IMO工作。

&#13; 将只在工作

&#xD; <—–这是插入进位返回所需的文本。

在Chrome 16以及更早的版本中,您可以使用“\ n”。 作为旁注,“\ t”也适用

只需使用这个:

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

您可以使用此&#x0a在标题上添加新行。

我知道我迟到了,但对于那些只是想看到这个工作,这里是一个演示: http : //jsfiddle.net/rzea/vsp6840b/3/

使用的HTML:

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

至于谁呢&#10; 没有工作,你必须风格线条可见的元素为: white-space: pre-line;

引用此答案: https : //stackoverflow.com/a/17172412/1460591

只需使用JavaScript。 然后与大多数和更旧的浏览器兼容。 使用转义序列\ n作为换行符。

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

从可用性信息和使用工具提示使得使用CR或换行符的工具提示得到赞赏,各种浏览器无法/不会同意基本事实表明他们并不太在乎可访问性。

根据w3c网站上的这篇文章 :

CDATA是文档字符集中的一系列字符,可能包含字符实体。 用户代理应该如下解释属性值:

  • 用字符替换字符实体,
  • 忽略换行,
  • 用一个空格替换每个回车符或制表符。

这意味着(至少)CR和LF在标题属性中不起作用。 我建议你使用工具提示插件。 大多数这些插件允许任意的HTML显示为元素的工具提示。

我们有一个要求,我们需要测试所有这些,这是我想分享

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

黑客,但作品 – (在铬和移动测试)

只是不添加休息空间,直到它休息 – 你可能不得不限制工具提示的大小取决于内容的数量,但对于小文本消息这是可行的:

 &nbsp;&nbsp; etc 

试过以上的一切,这是唯一的工作对我来说 –

剃刀语法

在ASP.NET MVC的情况下,您可以将标题作为变量存储为\r\n并且可以工作。

 @{ var logTooltip = "Sunday\r\nMonday\r\netc."; } <h3 title="@logTooltip">Logs</h3>