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


330

我目前正在向我们的网站添加详细的工具提示,并且我希望(不必诉诸于whizz-bang jQuery插件,我知道有很多!)使用回车符来格式化工具提示。

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

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

我尝试用替换?

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

以上都不是。可能吗?


这很棘手,但是可能有解决方法。将标题中的所有空格更改为不间断空格&nbsp;。然后在要换行的地方放置空格。您可能还需要&nbsp;在空格之前添加一堆字符(换行符)。
jumxozizi

Answers:


292

非常简单,您会踢自己...只需按Enter!

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

Firefox完全不会显示多行工具提示-它将完全替换换行符。


69
这个答案已经过时,Firefox 现在确实在标题显示换行符(我使用的是v25)。它的工作原理同\n\u000A\x0A
Halcyon 2014年

1
@Halcyon,只是为了向其他读者阐明,以上三个代码似乎不是HTML。它们看起来更像是C衍生的语言字符串转义序列。
2015年

3
@山姆,我不明白你的意思。\x0A(字节)是与换行符相对应的字符代码。对于\u000A(unicode)也是如此。\n也是换行符。
Halcyon 2015年

13
@Halcyon,我尝试将这些转义序列插入titleFirefox和Chrome 的属性中,而它们只是在工具提示中按字面意思显示。之后,我意识到您可能正在使用该语法作为传达应使用哪些字符(而非转义序列)的方式。我的评论是通过警告其他人不要尝试将您的转义序列放入他们的HTML中来节省他们的时间,以免他们像我一样浪费时间。
2015年

4
@Tarquin它们不能在HTML中工作,它们只能在PHP的双引号中使用,因为这是PHP的双引号的功能。
Brilliand 2015年

307

最新的规范允许换行符,所以属性或实体内部的一个简单的换行符&#10;(注意,字符#;为必填项)都OK。


4
Chrome不支持此功能,但对于Firefox来说不错!
阿莱丁2015年

5
我都尝试过&#10;&#13;&#13;不会支持Chrome版本50.0.2661.94(64位)中的预期“换行符”。&#10;在最新版本的chrome,firefox和Opera(均适用于64位Ubuntu)和Internet Explorer 11.0版本以及Windows上的某些更改中运行良好。
塔斯(Tass),

这对我特别有用,因为我试图在Wordpress帖子编辑器上进行此操作。
ed1nh0 '17

13
&#10; 在IE,Firefox和Chrome中都能很好地工作。谢谢!
丹尼尔(Daniel)

对于铬&#013; .......示例:title =“ title1&#13; title2&#13; title3”
Malik Zahid

75

尝试使用字符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>


2
+1。如果决定使用jQuery插件,则为获得最佳可访问性,它应从title属性读取其内容,并在运行时用一些任意的不可见字符替换换行符。
肯特·弗雷德里克

+1。有趣的东西。仍然有一些UA在弹出标题时对其进行修饰的问题-我记得FF2,但如今这已不再是一个问题。
roborourke

3
自2015年1月起,Firefox确实支持使用&#13;in title属性插入换行符。
pseudosavant'2

我无法在SVG元素中的IE11中使用换行符<title>。有人在这方面取得了更大的成功吗?尝试了上面/下面提到的字符代码,似乎没有任何作用。
2015年

64

在IE,Chrome,Safari,Firefox(最新版本2012-11-27)中对此进行了测试:
&#13;

适用于所有人


第一种方法(在代码中换行)似乎更简单,但不能自动格式化js代码程序。
horiatu 2015年

@Camilo Martin,换行符和换行符在各个平台上都相同。&#10;是unix换行,就像是Windows换行一样。同样,这&#13;是两个平台的换行符。该规范指定换行(LF)字符,这当然是&#10;两个(所有?)平台。
2015年

2
@matty不确定我是否理解您-正确使用的东西似乎是unix LF(一种跨协议和工具的标准换行符),CR仅由旧Mac(和其他晦涩的平台)使用,并且似乎不合适。
卡米洛·马丁

对于令人困惑的单词选择,我深表歉意。我通常称为换行符(#10)的确是换行符,尽管通常称为LF。我所谓的换行符(#13)实际上是回车符。无论如何,我的观点是在所有平台上这些值都是相同的。对于在title属性中使用哪个HTML实体,windows(使用这两个字符都结束一行)和mac(使用“错误”字符来结束一行)这一事实应该无关紧要。规范说&#10;,尽管显然也&#13;可以在许多情况下使用。
2015年

2
普通&#13; 在Linux上不适用于Chrome。序列&#13;&#10; 但是。
山姆·沃特金斯

51

同样值得一提的是,如果要使用Javascript设置title属性,例如:

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

它不会工作。您必须使用Java逸出方式将ASCII十进制10替换为ASCII十六进制A。像这样:

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


@MaxNanasy同意,并且它们等效(\n无论如何都表示字符代码10)
rvighne 16'Aug

29

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

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

这在IE中有效,并且根据HTML5规范的title属性是正确的。


16

如果您使用的是jQuery:

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

将工作。

在IE-9中测试:正常工作。


在MVC 3中运行的示例:@ Html.DropDownList(“ RegId”,null,“ Select Region”,new {title =“从下拉菜单中选择一个区域,\ n这是获得有效合同名称的列表所必需的” ,@class =“ form-control”,onchange =“ getContractNames(this)”,style =“ width:200px;”})
Warren LaFrance

15

作为对&#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>

演示版

在此处输入图片说明


8

&#13; 适用于所有专业浏览器(包括IE)


13
这个答案已经过时了。&#13; 在Chrome和其他浏览器中也可以使用。
2014年

7

我知道我参加晚会很晚,但是对于那些只想看到此工作的人,这里有一个演示: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>

2
最新的响应,在Firefox上效果很好。谢谢。
Marwanمروان2015年

6

我不相信。Firefox 2会修剪长链接标题,实际上它们仅应用于传达少量帮助文本。如果您需要更多说明文字,建议您将其包含在与链接关联的段落中。然后,您可以添加工具提示javascript代码以隐藏这些段落,并将其显示为悬停工具提示。这是让它跨浏览器IMO工作的最佳选择。



6

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


6

我们有一个需要测试所有这些的要求,这是我希望分享的内容

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

小提琴




4

只需使用此:

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

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


4

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

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

什么版本的Chrome?它适用于我,我正在使用Chrome。
Welshboy

实际上,我使用的是最新版本的Chrome,但是,由于我使用的是SVG Elements,因此无法正常工作,不是可以的。
NewPHPer '16

4

&#013;如果仅使用简单的title属性,则此方法应该起作用。

在自举弹出窗口上,只需data-html="true"data-content属性中使用html即可。

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


3

从有关可访问性的信息以及使用提示或通过使用CR或换行符使其变得更大的工具提示的使用中得到赞赏,各种浏览器无法/不会在基础知识上达成共识这一事实表明,他们不太在意可访问性。


2
有关跨浏览器自定义工具提示的非常简单的解决方案,请参阅kollermedia.at/archive/2008/03/24/easy-css-tooltip/…–
Dave

@Dave这是一个很好的链接,但是演示中的换行发生是由于width属性
Melsi

3

根据w3c网站上的这篇文章

CDATA是文档字符集中的字符序列,并且可以包括字符实体。用户代理应按以下方式解释属性值:

  • 用字符替换字符实体,
  • 忽略换行,
  • 用单个空格替换每个回车或卡舌。

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


1
是的,我知道这不是官方的。你错了,但是。这并不意味着它们将不会显示。这意味着W3C规范没有说明应如何显示...。这篇文章的重点不是暗示它们可以用来替换功能更强大的插件...。更多的是在降级期间可以使用其他任何插件。
penderi 2011年

@ip:我错了,因为更新的w3c建议建议浏览器将内容拆分为LF字符。但是,浏览器最终将实现此行为。
Salman

2

可以手动创建好看的工具提示,并且可以包含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>

这是从w3schools帖子上获得的。在这里尝试上面的代码


1

剃刀语法

在ASP.NET MVC的情况下,您只需将标题作为变量存储即可,就可以使用\r\n

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

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

0

hack但可以工作-(在chrome和移动设备上经过测试)

只是不添加任何空格,直到它断开为止-您可能必须根据内容的数量来限制工具提示的大小,但对于小文本消息来说,这是可行的:

&nbsp;&nbsp; etc

尝试了以上所有内容,这是唯一对我有用的东西-


0

我尝试用“”在新行中显示标题文本,它的工作方式就像是一种魅力


0

我正在使用firefox 68.7.0esr,&#013;但无法正常工作。打破界限<CR>确实有效,因此我将继续进行下去,因为它简单而又向前。即

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

-1

使用data-html="true"和应用<br>


1
这不是规范的一部分。必须是一些随机的工具提示插件
TJ
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.