可以将文章内容翻译成中文,广告屏蔽插件可能会导致该功能失效(如失效,请关闭广告屏蔽插件后再试):
问题:
This question already has an answer here:
-
How to change the style of the title attribute inside an anchor tag?
10 answers
Is it possible to format an HTML tooltip?
E.g. I have a DIV with attribute title="foo!". When I have text-size of my browser zoomed in or out in, the text size of the tooltip remains unchanged. Is there a way to make the tooltip font scale with the browser setting?
回答1:
No. But there are other options out there like Overlib, and jQuery that allow you this freedom.
- jTip : http://www.codylindley.com/blogstuff/js/jtip/
- jQuery Tooltip : https://jqueryui.com/tooltip/
Personally, I would suggest jQuery as the route to take. It's typically very unobtrusive, and requires no additional setup in the markup of your site (with the exception of adding the jquery script tag in your <head>).
回答2:
Try using entity codes such as 
for CR, 

for LF, and 	
for TAB.
For example:
<div title="1)	A
2)	B">Hover Me</div>
回答3:
it seems you can use css and a trick (no javascript) for doing it:
http://davidwalsh.name/css-tooltips
http://www.menucool.com/tooltip/css-tooltip
http://sixrevisions.com/css/css-only-tooltips/
http://csstooltip.com
回答4:
No, it's not possible, browsers have their own ways to implement tooltip. All you can do is to create some div that behaves like an HTML tooltip (mostly it's just 'show on hover') with Javascript, and then style it the way you want.
With this, you wouldn't have to worry about browser's zooming in or out, since the text inside the tooltip div is an actual HTML, it would scale accordingly.
See Jonathan's post for some good resource.
回答5:
Better late than never, they always say.
Normally I'd use jQuery to solve such a situation. However, when working on a site for a client which required a javascript-less solution, I came up with the following:
<div class="hover-container">
<div class="hover-content">
<p>Content with<br />
normal formatting</p>
</div>
</div>
By using the following css, you get the same situation as with a title:
.hover-container {
position: relative;
}
.hover-content {
position: absolute;
bottom: -10px;
right: 10px;
display: none;
}
.hover-container:hover .hover-content {
display: block;
}
This gives you the option to style it according to your needs as well, and it works in all browsers. Even the ones where javascript is disabled.
Pros:
- You have a lot of influence on the styling
- It works in (nearly) all browsers
Cons:
- It's harder to position the tooltip
回答6:
Mootools also has a nice 'Tips' class available in their 'more builder'.
回答7:
It's not possible. But you can use some javascript libraries to create such tooltip, e.g. http://www.taggify.net/
回答8:
Not sure if it works with all browsers or 3rd party tools, but I have had success just specifying "\n" in tooltips for newline, works with dhtmlx in at least ie11, firefox and chrome
for (var key in oPendingData) {
var obj = oPendingData[key];
this.cells(sRowID, nColInd).cell.title += "\n" + obj["ChangeUser"] + ": " + obj[sCol];
}
回答9:
I wrote this small javascript function that converts all of your native title tooltips into stylized nodes:
http://jsfiddle.net/BurakUeda/g8r8L4vt/1/
mo_title = null;
mo_element = null;
document.onmousemove = function (e) {
var event = e || window.event;
var current_title;
var moposx = e.pageX; // current
var moposy = e.pageY; // mouse positions
var tooltips = document.getElementById("tooltips"); // element for displaying stylized tooltips (div, span etc.)
var current_element = event.target || event.srcElement; // the element we're currently hovering
if (current_element == mo_element) return; // we're still hovering the same element, so ignore
if(current_element.title){
current_title = current_element.title;
} else {
current_title = "-_-_-"; // if current element has no title,
current_element.title = "-_-_-"; // set it to some odd string that you will never use for a title
}
if(mo_element == null){ // this is our first element
mo_element = current_element;
mo_title = current_title;
}
if(mo_title) mo_element.title = mo_title; // restore the title of the previous element
mo_element = current_element; // set current values
mo_title = current_title; // as default
if(mo_element.title){
var mo_current_title = mo_element.title; // save the element title
mo_element.title = ""; // set it to none so it won't show over our stylized tooltip
if(mo_current_title == "-_-_-"){ // if the title is fake, don't display it
tooltips.style.display = "none";
tooltips.style.left = "0px";
tooltips.style.left = "0px";
tooltips.innerHTML = "";
} else {
tooltips.style.display = "inline-block";
tooltips.style.left = (moposx + 10) + "px";
tooltips.style.top = (moposy + 10) + "px";
tooltips.innerHTML = mo_current_title;
}
}
};
#tooltips {
display: none;
position: absolute;
left 0;
top: 0;
color: white;
background-color: darkorange;
box-shadow: black 2px 2px 2px;
padding: 5px;
border-radius:5px;
}
#buttoncontainer{
border: 1px black solid;
padding: 10px;
margin: 5px;
}
<div id="tooltips"></div>
<div>
<div title="DIV #1">Division 1</div>
<div id="buttoncontainer" title="Button container">
<button title="Button with title"> Button #1 </button>
<button> Button w/o title </button>
<button title="
<table border='1' cellpadding='4' cellspacing='0'>
<tr>
<td style='background-color:black; color:white; font-weight:bold; text-align: right'> TITLE #1</td>
<td style='text-decoration:underline; color:RoyalBlue; font-style: italic; font-size: 18px'>Description 1</td>
</tr>
<tr>
<td style='background-color:black; color:white; font-weight:bold; text-align: right'> TITLE #2</td>
<td style='text-decoration:overline; color:RoyalBlue; font-weight:bold; font-size: 14px'>Description 1</td>
</tr>
<tr>
<td style='background-color:black; color:white; font-weight:bold; text-align: right'> TITLE #3</td>
<td style='text-decoration:line-through; color:RoyalBlue; font-style: italic; font-size: 12px'>Description 1</td>
</tr>
</table>
"> Button title containing HTML </button>
</div>
</div
Pros:
- You don't have to convert anything. Just write your usual HTML with native title attributes.
- You can use HTML tags and inline styling in your title tooltips. (See the example with whole HTML table in a title with it's own styling)
Cons:
- It's javascript
- Not tested on every browser in existance, but works fine with latest versions of Chrome, FF, IE and Opera
It probably can be written more elegantly and may have a few lines that is unnecessary.
Also, stackoverflow code snippet thingy cannot parse the HTML code correctly, so check it on the jsfiddle link I provided.
回答10:
I know this is an old post but I would like to add my answer for future reference.
I use jQuery and css to style my tooltips: easiest-tooltip-and-image-preview-using-jquery
(for a demo: http://cssglobe.com/lab/tooltip/02/)
On my static websites this just worked great. However, during migrating to Wordpress it stopped. My solution was to change tags like <br> and <span>
into this: <br> and <span>
This works for me.
回答11:
In bootstrap tooltip just use data-html="true"