วิธีการทำให้แถบเครื่องมือ Twitter Bootstrap มีหลายบรรทัด?


157

ฉันกำลังใช้ฟังก์ชั่นด้านล่างเพื่อสร้างข้อความที่จะแสดงโดยใช้คำแนะนำเครื่องมือของ Bootstrap คำแนะนำเครื่องมือหลายอันมาพร้อมกับ<br>และไม่ได้\nอย่างไร ฉันชอบที่ไม่มี HTML ในแอตทริบิวต์ชื่อลิงค์ของฉัน

งานอะไร

def tooltip(object)
  tooltip = ""
  object.each do |user|
    tooltip += "#{user.identifier}" + "<br>"
  end
  return tooltip
end

สิ่งที่ฉันต้องการ

def tooltip(object)
   tooltip = ""
   object.each do |user|
     tooltip += "#{user.identifier}" + "\n"
   end
   return tooltip
 end

1
คุณเข้าใจความแตกต่างระหว่าง \ n และ <br/> ใน HTML หรือไม่
โคลจอห์นสัน

2
<br/> จะทำงานในด้านการแสดงผล HTML ในขณะที่ / n จะแสดงเฉพาะรหัส html ของคุณในบรรทัดใหม่
rajesh kakawat

ฉันถูกมองที่เว็บไซต์อื่น ๆ บางอย่างและพวกเขามีหลายคำแนะนำเครื่องมือโดยไม่ต้องสาขา
แมทธิวฮุ่ย

คำตอบ:


265

คุณสามารถใช้white-space:pre-wrapกับเคล็ดลับเครื่องมือ สิ่งนี้จะทำให้คำแนะนำเครื่องมือเคารพบรรทัดใหม่ บรรทัดจะยังคงถูกตัดหากมีความยาวมากกว่าความกว้างสูงสุดเริ่มต้นของคอนเทนเนอร์

.tooltip-inner {
    white-space:pre-wrap;
}

http://jsfiddle.net/chad/TSZSL/52/

หากคุณต้องการป้องกันไม่ให้ข้อความตัดคำให้ทำดังต่อไปนี้แทน

.tooltip-inner {
    white-space:pre;
    max-width:none;
}

http://jsfiddle.net/chad/TSZSL/53/

ทั้งสองอย่างนี้จะทำงานร่วมกับ\nใน html พวกเขาจะต้องเป็นจริงขึ้นบรรทัดใหม่ หรือคุณสามารถใช้การขึ้นบรรทัดใหม่เข้ารหัส&#013;แต่ที่อาจจะแม้แต่น้อยที่น่าพอใจกว่าการใช้<br>'s


1
ทีนี้คุณจะทำยังไงกับ popover
aaa90210

1
@ aaa90210 .popover-content { white-space:pre-wrap; }คุณอาจจะลอง ขึ้นอยู่กับเนื้อหาของคุณ.popover-content p { white-space:pre-wrap; }หรือบางอย่างที่คล้ายกันอาจดูดีขึ้น
ชาดฟอนเนา

เป็นไปได้ไหมที่จะแสดงตัวแปร JSP ในคำแนะนำเครื่องมือเช่นนี้ ฉันได้ลอง<a href="#" rel="tooltip" title="${aaa} ${bbb} ${ccc}" class="example">Show</a>แล้ว แต่มันให้สิ่งนี้: aaabbbccc (สตริงที่ต่อกัน)
zygimantus

1
.tooltip-inner {white-space: pre-line;} ใช้ได้สำหรับฉัน
Kishor K

pre-line ทำงานให้ฉัน - ข้อความอื่น ๆ ทั้งหมดทำให้ข้อความไม่สอดคล้องกัน
Adam Moisa

221

คุณสามารถใช้คุณสมบัติ html: http://jsfiddle.net/UBr6c/

My <a href="#" title="This is a<br />test...<br />or not" class="my_tooltip">Tooltip</a> test.

$('.my_tooltip').tooltip({html: true})

1
คุณยังไม่ได้ตรวจสอบBootstrap 2.0.2 (js only)ตัวเลือกใน jsFiddle ของคุณซึ่งทำให้มันไม่ทำงานเมื่อเริ่มต้น (เปิด) ทำเครื่องหมายและบันทึกเพื่อให้บุคคลอื่นไม่ปฏิบัติตามตัวอย่างของคุณจึงไม่ทำงาน
trejder

56

หากคุณใช้Twitter Bootstrap Tooltip ในองค์ประกอบที่ไม่ใช่ลิงค์คุณสามารถระบุได้ว่าคุณต้องการคำแนะนำเครื่องมือหลายบรรทัดโดยตรงในโค้ด HTML โดยไม่ต้องใช้ Javascript โดยใช้dataพารามิเตอร์:

<span rel="tooltip" data-html="true" data-original-title="1<br />2<br />3">5</span>

นี่เป็นเพียงรุ่นที่ทางเลือกของการCostalesคำตอบ ' ความรุ่งโรจน์ทั้งหมดไปหาเขา! :]


2
ทำไมคุณถึงพูดว่า "องค์ประกอบที่ไม่ใช่ลิงค์" ฉันลองมันในลิงค์และดูเหมือนว่าจะทำงานได้ดี
ec2011

2
อืม ... ฉันจำไม่ได้! :] หลังจากห้าเดือนฉันคิดว่าฉันผิด ฉันก็ไม่รู้เหมือนกันว่าทำไมมันไม่ควรทำงานกับลิงก์ ขออภัย ...
trejder

1
อันนี้ใช้งานได้สำหรับฉันโดยเฉพาะถ้าคุณกำลังเรียกใช้เคล็ดลับเครื่องมือด้วยจาวาสคริปต์มันจะถูกโหลดในองค์ประกอบตัวเองขอบคุณ!
Leo


2

ใน Angular UI Bootstrap 0.13.X tooltip-html-unsafe ถูกเลิกใช้แล้ว ตอนนี้คุณควรใช้ tooltip-html และ $ sce.trustAsHtml () เพื่อให้บรรลุคำแนะนำเครื่องมือด้วย html

https://github.com/angular-ui/bootstrap/commit/e31fcf0fcb06580064d1e6375dbedb69f1c95f25

<a href="#" tooltip-html="htmlTooltip">Check me out!</a>

$scope.htmlTooltip = $sce.trustAsHtml('I\'ve been made <b>bold</b>!');

0

โซลูชัน CSS สำหรับ Angular Bootstrap คือ

::ng-deep .tooltip-inner {
  white-space: pre-wrap;
}

ไม่จำเป็นต้องใช้องค์ประกอบหลักหรือตัวเลือกคลาสหากคุณไม่ต้องการ จำกัด การใช้งาน คัดลอก / พาสต้าและกฎนี้จะใช้กับส่วนประกอบย่อยทั้งหมด

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