今天在使用Bootstrap的Tooltip功能時遇到2個小問題:換行丟失,文字不是左對齊。然後經過百度和Bing找到了解決方案。
先看一下Bootstrap中展示Tooltip的代碼:
<link href="bootstrap/css/bootstrap.min.css" rel="stylesheet" type="text/css"/> <script src="res/jquery.min.js" type="text/javascript"></script> <script src="bootstrap/js/bootstrap.min.js" type="text/javascript"></script> <script> $(function () { $('[data-toggle="tooltip"]').tooltip(); }); </script> <button type="button" class="btn btn-default" data-toggle="tooltip" data-placement="left" title="${desc}">${title}</button>
注意這裏${desc}和${title}是SpringMVC後臺傳過來的數據。
這是Bootstrap Tooltip最基本的代碼,也就是會出現我說的兩個問題。
換行問題
遇到換行,我們首先想到的是將"\n"替換成"<br/>",我也是這麼做的(具體參見我的另一文章),可惜這在Tooltip中不管用。Tooltip直接把"<br/>"當作文字顯示出來了。
也就是說,HTML在Tooltip中沒有起作用。好在我找到了data-html屬性,可以使得在Tooltip中使用HTML,讓"<br/>"起作用。加上data-html="true"
後換行起作用了,看如下代碼:
<button type="button" class="btn btn-default" data-html="true" data-toggle="tooltip" data-placement="left" title="${fn:replace(desc, newline, "<br/>")}">${title}</button>
左對齊
基於HTML起作用後,再做左對齊就簡單多了,將要顯示的內容放在<p
align='left'>...</p>
中。
<button type="button" class="btn btn-default" data-html="true" data-toggle="tooltip" data-placement="left" title="<p align='left'>${fn:replace(desc, newline, "<br/>")}</p>">${title}</button>
無論什麼原因,如果<p align='left'>不管用,還有很多選擇:
<style> .tooltip > p { text-align:left; } </style>
.tooltip-inner { text-align:left; }
http://www.alanzeng.cn/2015/12/bootstrap-tooltip-newline-left-align/