ฉันจะใช้การคืนค่าขนส่งในคำแนะนำเครื่องมือ HTML ได้อย่างไร


330

ฉันกำลังเพิ่มคำแนะนำเครื่องมือ verbose ในเว็บไซต์ของเราและฉันต้องการ (โดยไม่ต้องใช้ปลั๊กอิน jQuery whiz-bang, ฉันรู้ว่ามีจำนวนมาก!) เพื่อใช้ carriage return เพื่อจัดรูปแบบคำแนะนำเครื่องมือ

เพื่อเพิ่มเคล็ดลับที่ฉันใช้titleคุณลักษณะ ฉันได้ดูไซต์ทั่วไปและใช้เทมเพลตพื้นฐานของ:

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

ฉันได้ลองแทนที่?ด้วย:

  • <br />
  • &013; / &#13;
  • \r\n
  • Environment.NewLine (ฉันใช้ C #)

ไม่มีการทำงานใด ๆ ข้างต้น เป็นไปได้ไหม?


มันค่อนข้างยุ่งยาก แต่อาจมีวิธีแก้ปัญหา &nbsp;เปลี่ยนพื้นที่ทั้งหมดในชื่อของคุณเข้าไปในพื้นที่ที่ไม่ทำลาย จากนั้นใส่ช่องว่างที่คุณต้องการให้ตัวแบ่งบรรทัด คุณอาจต้องเพิ่ม&nbsp;อักขระจำนวนหนึ่งก่อนที่ช่องว่างของคุณ (ตัวแบ่งบรรทัด)
jumxozizi

คำตอบ:


292

มันง่ายมากที่คุณจะเตะตัวเอง ... เพียงแค่กด Enter!

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

Firefox จะไม่แสดงคำแนะนำเครื่องมือหลายบรรทัดเลย - มันจะแทนที่บรรทัดใหม่ด้วยอะไร


69
คำตอบนี้ล้าสมัย Firefox ทำเช่นนั้นแสดงบรรทัดใหม่ในชื่อตอนนี้ (ฉันใช้ v25) จะทำงานร่วมกับ\n, และ\u000A \x0A
Halcyon

1
@ Halcyon เพื่อชี้แจงให้ผู้อ่านคนอื่น ๆ รหัสสามรหัสข้างต้นดูเหมือนจะไม่เป็น HTML พวกมันดูเหมือนลำดับการหลบหนีของสตริงภาษาที่มาจาก C
Sam

3
@ Sam ฉันไม่เข้าใจว่าคุณหมายถึงอะไร \x0A(ไบต์) คือรหัสอักขระที่สอดคล้องกับบรรทัดใหม่ เหมือนกันสำหรับ\u000A(ยูนิโค้ด) \nยังขึ้นบรรทัดใหม่
Halcyon

13
@Halcyon ฉันพยายามแทรกลำดับการหลีกเลี่ยงเหล่านั้นไปยังtitleแอตทริบิวต์ใน Firefox และ Chrome และพวกเขาเพิ่งนำเสนออย่างแท้จริงในคำแนะนำเครื่องมือ หลังจากนั้นฉันรู้ว่าคุณอาจใช้ไวยากรณ์นั้นเป็นวิธีการสื่อสารว่าควรใช้อักขระใด (ไม่ใช่ลำดับการยกเว้น) ความคิดเห็นของฉันมีไว้สำหรับการประหยัดเวลาของผู้อื่นโดยเตือนพวกเขาว่าอย่าพยายามใส่ลำดับการหลบหนีของคุณไว้ใน HTML เพื่อไม่ให้เสียเวลาเหมือนที่ฉันทำ
Sam

4
@Tarquin พวกเขาไม่ทำงานใน HTML พวกเขาทำงานเฉพาะในเครื่องหมายคำพูดคู่ของ PHP เพราะนั่นเป็นคุณสมบัติของคำพูดสองเท่าของ PHP
Brilliand

307

สเปคใหม่ล่าสุดช่วยให้ตัวละครอาหารเส้นเพื่อแบ่งบรรทัดง่ายภายในแอตทริบิวต์หรือนิติบุคคล&#10;(หมายเหตุว่าตัวละคร#และ;จะต้อง) จะ OK


4
Chrome ไม่รองรับ แต่ใช้งานได้ดีกับ Firefox!
Alaeddine

5
ฉันพยายามทั้งสองและ&#10; จะไม่ให้เกียรติ "ตัวแบ่งบรรทัด" ในรุ่นโครเมียม 50.0.2661.94 (64- บิต) ทำงานได้ดีใน Chrome รุ่นปัจจุบัน Firefox และ Opera (ทั้งหมดสำหรับ Ubuntu แบบ 64 บิต) และ Internet Explorer เวอร์ชัน 11.0 และการเปลี่ยนแปลงบางอย่างบน Windows &#13;&#13;&#10;
Tass

สิ่งนี้มีประโยชน์อย่างยิ่งสำหรับฉันเพราะฉันพยายามทำเช่นนั้นในโปรแกรมแก้ไขบทความของ Wordpress
ed1nh0

13
& # 10; ทำงานได้อย่างสวยงามใน IE, Firefox และ Chrome ขอบคุณ!
Daniel

สำหรับ chrome & # 013; ....... ตัวอย่าง: title = "title1 & # 13; title2 & # 13; title3"
Malik Zahid

75

ลองใช้อักขระ 10 แต่จะไม่ทำงานใน Firefox :(

ข้อความจะปรากฏขึ้น (ถ้าทั้งหมด) ในลักษณะที่ขึ้นกับเบราว์เซอร์ เคล็ดลับเครื่องมือขนาดเล็กทำงานบนเบราว์เซอร์ส่วนใหญ่ เคล็ดลับเครื่องมือยาวและการทำลายเส้นใน IE และ Safari (ใช้&#10;หรือ&#13;ขึ้นบรรทัดใหม่) Firefox และ Opera ไม่รองรับการขึ้นบรรทัดใหม่ Firefox ไม่รองรับคำแนะนำเครื่องมือที่ยาว

http://modp.com/wiki/htmltitletooltips

ปรับปรุง:

ตั้งแต่เดือนมกราคม 2558 Firefox รองรับการใช้&#13;การแทรกตัวแบ่งบรรทัดในtitleแอตทริบิวต์HTML ดูตัวอย่างข้อมูลด้านล่าง

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


2
+1 หากคุณตัดสินใจที่จะใช้ปลั๊กอิน jQuery เพื่อความสามารถในการเข้าถึงที่ดีที่สุดคุณควรอ่านเนื้อหาจากแอททริบิวต์หัวเรื่องและแทนที่อักขระที่มองไม่เห็นโดยพลการสำหรับการแบ่งบรรทัดขณะรันไทม์
Kent Fredric

+1 สิ่งที่น่าสนใจ ยังคงมีปัญหาของ UAs บางตัวที่ตัดชื่อเมื่อป๊อปอัป - FF2 ตามที่ฉันจำได้ แต่นั่นก็เป็นปัญหาน้อยลงในวันนี้
roborourke

3
ตั้งแต่เดือนมกราคม 2558 Firefox รองรับการใช้&#13;ในtitleแอตทริบิวต์เพื่อแทรกตัวแบ่งบรรทัด
pseudosavant

ฉันไม่สามารถใช้ตัวแบ่งบรรทัดเพื่อทำงานใน IE11 ในองค์ประกอบ SVG <title>ได้ มีใครประสบความสำเร็จมากขึ้นกับเรื่องนี้? ลองด้านบน / ด้านล่างพูดถึงรหัสถ่านดูเหมือนจะไม่ทำงาน
ธันวาคม

64

ทดสอบสิ่งนี้ใน IE, Chrome, Safari, Firefox (รุ่นล่าสุด 2012-11-27):
&#13;

ทำงานได้ในทุกสิ่ง ...


วิธีแรก (การแบ่งบรรทัดในโค้ด) ดูเหมือนง่ายกว่า แต่ไม่สามารถใช้กับโปรแกรมฟอร์แมตอัตโนมัติ js-code
horiatu

@ Camilo Martin บรรทัดใหม่และ linefeed เหมือนกันในทุกแพลตฟอร์ม &#10;เป็นยูนิกซ์ linefeed เหมือนกับ windows linefeed ในทำนองเดียวกัน&#13;คือบรรทัดใหม่สำหรับทั้งสองแพลตฟอร์ม สเปคระบุเลื่อนบรรทัดนี้ (LF) ถ่านซึ่งเป็นหลักสูตร&#10;ทั้ง (ทั้งหมดหรือไม่) กระเช้า
matty

2
@matty ไม่แน่ใจว่าฉันเข้าใจคุณหรือเปล่าสิ่งที่ใช้งานได้ถูกต้องดูเหมือนว่ายูนิกซ์LF(ซึ่งเป็นมาตรฐานการป้อนบรรทัดข้ามโปรโตคอลและเครื่องมือ) CRถูกใช้โดย Macs รุ่นเก่าเท่านั้น
Camilo Martin

ฉันขอโทษสำหรับการเลือกคำที่สับสนของฉัน สิ่งที่ฉันเรียกว่า linefeed (# 10) เป็นบรรทัดใหม่จริงๆแม้ว่ามักเรียกว่า LF สิ่งที่ฉันเรียกขึ้นบรรทัดใหม่ (# 13) คือการรับคืนของสายการบินจริงๆ ไม่ว่าในกรณีใดประเด็นของฉันคือค่าเหล่านั้นเหมือนกันในทุกแพลตฟอร์ม ความจริงที่ว่า windows (ใช้อักขระทั้งสองตัวนี้เพื่อวางบรรทัด) และ mac (การใช้อักขระ "ผิด" เพื่อวางบรรทัด) ไม่ควรเกี่ยวข้องกับเอนทิตี HTML ที่จะใช้ในแอททริบิวต์หัวเรื่อง สเป็คกล่าวว่า&#10;แม้ว่าจะเห็นได้ชัดว่าใช้&#13;งานได้ในหลายสถานการณ์เช่นกัน
matty

2
ธรรมดา & # 13; ใช้ไม่ได้กับ chrome บน Linux ลำดับ & # 13; & # 10; ทำอย่างไร
Sam Watkins

51

นอกจากนี้ยังควรกล่าวถึงหากคุณตั้งค่าแอตทริบิวต์หัวเรื่องด้วย Javascript เช่นนี้:

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

มันจะไม่ทำงาน คุณต้องแทนที่ ASCII ทศนิยม 10 เป็นเลขฐานสิบหก ASCII ในทางที่จะหลบหนีด้วย Javascript แบบนี้:

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


มีมติเห็นชอบ @MaxNanasy และพวกเขาเทียบเท่า ( \nหมายถึงรหัสถ่าน 10 แล้ว)
rvighne

29

ตั้งแต่ Firefox 12 ตอนนี้รองรับการแบ่งบรรทัดโดยใช้เอนทิตี HTML ของฟีดบรรทัด: &#10;

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

งานนี้ใน IE และเป็นที่ถูกต้องตามสเปค HTML5 สำหรับแอตทริบิวต์ชื่อ


16

หากคุณใช้ jQuery:

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

จะทำงาน.

ทดสอบใน IE-9: ใช้งานได้


ทำงานใน MVC 3 ตัวอย่าง: @ Html.DropDownList ("RegId", null, "Select Region", ใหม่ {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 และเบราว์เซอร์อื่น ๆ เช่นกัน
SaeX

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 مروان

6

ฉันไม่เชื่อว่ามันเป็น Firefox 2 จดจ้องลิงค์ยาว ๆ อยู่ดีและควรใช้เพื่อส่งข้อความช่วยเหลือจำนวนเล็กน้อยเท่านั้น หากคุณต้องการคำอธิบายเพิ่มเติมฉันอยากจะแนะนำว่ามันเป็นของย่อหน้าที่เกี่ยวข้องกับลิงค์ จากนั้นคุณสามารถเพิ่มรหัสเครื่องมือคำแนะนำจาวาสคริปต์เพื่อซ่อนย่อหน้าเหล่านั้นและแสดงเป็นคำแนะนำเครื่องมือเมื่อวางเมาส์ไว้ นั่นเป็นทางออกที่ดีที่สุดในการทำให้ IMO ทำงานข้ามเบราว์เซอร์


6

&#xD; <----- นี่คือข้อความที่จำเป็นในการแทรกการคืนเครื่อง


1
ใช้ได้กับทุกเบราว์เซอร์ :)
MonoThreaded

6

ใน Chrome 16 และรุ่นก่อนหน้านี้คุณสามารถใช้ "\ n" ในฐานะ sidenote "\ 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/>

ซอ


6

ใน Chrome 79 &#13;ไม่ทำงานอีกต่อไป

ฉันประสบความสำเร็จด้วย:

&#13;&#10;

สิ่งนี้ใช้ได้ในเบราว์เซอร์หลัก ๆ ทั้งหมด


5

สำหรับใคร &#10;ไม่ทำงานคุณต้องจัดองค์ประกอบองค์ประกอบที่บรรทัดสามารถมองเห็นได้ในรูปแบบ:white-space: pre-line;

อ้างอิงจากคำตอบนี้: https://stackoverflow.com/a/17172412/1460591


1
สไตล์นี้จะต้องใช้กับอะไร ชื่อเรื่อง? ชอบa[title]ไหม
Mohammed Zameer

4

เพียงใช้สิ่งนี้:

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

&#x0aคุณสามารถเพิ่มบรรทัดใหม่ที่ชื่อโดยใช้นี้


4

เพียงใช้จาวาสคริปต์ จากนั้นเข้ากันได้กับเบราว์เซอร์ส่วนใหญ่และรุ่นเก่ากว่า ใช้ escape sequence \ n เพื่อขึ้นบรรทัดใหม่

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

Chrome รุ่นใด มันใช้งานได้สำหรับฉันและฉันกำลังใช้ Chrome
Welshboy

จริงๆแล้วฉันกำลังใช้ Chrome เวอร์ชันล่าสุด แต่เนื่องจากฉันทำงานกับ SVG Elements มันไม่ทำงานไม่เป็นเช่นนั้น
NewPHPer

4

สิ่งนี้&#013;จะใช้ได้ผลถ้าคุณใช้แอตทริบิวต์ชื่อเรื่องง่าย ๆ

บน bootstrap popovers เพียงใช้data-html="true" และใช้ html ในdata-contentคุณสมบัติ

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


3

จากข้อมูลที่มีอยู่ในความสามารถในการเข้าถึงและการใช้คำแนะนำเครื่องมือที่ทำให้พวกเขามีขนาดใหญ่ขึ้นด้วยการใช้ CR หรือตัวแบ่งบรรทัดเป็นที่นิยมข้อเท็จจริงที่ว่าเบราว์เซอร์ต่างๆไม่สามารถ / จะไม่เห็นด้วยกับพื้นฐาน


2
สำหรับการแก้ปัญหาง่ายมากที่จะเบราว์เซอร์ที่กำหนดเองเคล็ดลับข้ามเห็นkollermedia.at/archive/2008/03/24/easy-css-tooltip/...
เดฟ

@DaveThis เป็นลิงค์ที่ดี แต่ตัวแบ่งบรรทัดในการสาธิตเกิดขึ้นเนื่องจากแอตทริบิวต์ width
Melsi

3

ตามบทความนี้ในเว็บไซต์ w3c :

CDATA คือลำดับของอักขระจากชุดอักขระของเอกสารและอาจรวมถึงตัวอักขระ ตัวแทนผู้ใช้ควรตีความค่าแอตทริบิวต์ดังต่อไปนี้:

  • แทนที่เอนทิตีอักขระด้วยอักขระ
  • ละเว้นบรรทัดฟีด
  • แทนที่แคร่ตลับหมึกหรือแท็บแต่ละอันด้วยช่องว่างเดียว

ซึ่งหมายความว่า (อย่างน้อย) CR และ LF จะไม่ทำงานภายในแอตทริบิวต์ชื่อ ฉันขอแนะนำให้คุณใช้ปลั๊กอินคำแนะนำเครื่องมือ ส่วนใหญ่ของปลั๊กอินเหล่านี้อนุญาตให้ HTML แบบสุ่มสามารถแสดงเป็นคำแนะนำเครื่องมือขององค์ประกอบ


1
ใช่ฉันรู้ว่ามันไม่เป็นทางการ คุณผิด แต่อย่างใด ไม่ได้หมายความว่าจะไม่ปรากฏ หมายความว่าข้อมูลจำเพาะของ W3C ไม่ได้ระบุว่าควรจะแสดงอย่างไร ... จุดโพสต์ไม่แนะนำให้ใช้เพื่อแทนที่ปลั๊กอินที่ใช้งานได้มากขึ้น ... มันเป็นกรณีของการย่อยสลายที่มากขึ้นสามารถใช้งานอื่นได้
penderi

@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

แฮ็ก แต่ใช้ได้ - (ทดสอบกับ 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
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.