Tôi có một thẻ div như thế này:
<div>
<label>Name</label>
<input type="text"/>
</div>
Làm cách nào tôi có thể hiển thị một chú giải công cụ trên :hover
div, tốt nhất là với hiệu ứng mờ dần trong / ngoài.
Tôi có một thẻ div như thế này:
<div>
<label>Name</label>
<input type="text"/>
</div>
Làm cách nào tôi có thể hiển thị một chú giải công cụ trên :hover
div, tốt nhất là với hiệu ứng mờ dần trong / ngoài.
Câu trả lời:
Đối với tooltip cơ bản, bạn muốn:
<div title="This is my tooltip">
Đối với phiên bản javascript fancier, bạn có thể xem xét:
https://jqueryhouse.com/best-jquery-tooltip-plugins/
Liên kết trên cung cấp cho bạn 25 tùy chọn cho chú giải công cụ.
<abbr title="...">...</abbr>
thay vào đó hãy sử dụng ; các trình duyệt thường tạo kiểu này được gạch chân bằng dấu gạch ngang / dấu chấm, cho biết "có nhiều điều để nói hơn, hãy xem chú giải công cụ của tôi".
Nó có thể được thực hiện với CSS chỉ , không có javascript ở tất cả : chạy bản demo
Áp dụng một thuộc tính HTML tùy chỉnh, ví dụ. data-tooltip="bla bla"
đến đối tượng của bạn (div hoặc bất cứ điều gì):
<div data-tooltip="bla bla">
something here
</div>
Xác định :before
giả hành của từng [data-tooltip]
đối tượng để minh bạch, vị trí tuyệt đối và có data-tooltip=""
giá trị như nội dung:
[data-tooltip]:before {
position : absolute;
content : attr(data-tooltip);
opacity : 0;
}
Xác định :hover:before
trạng thái lơ lửng của từng trạng thái [data-tooltip]
để hiển thị:
[data-tooltip]:hover:before {
opacity : 1;
}
Áp dụng các kiểu của bạn (màu sắc, kích thước, vị trí, v.v.) cho đối tượng tooltip; kết thúc câu chuyện
Trong bản demo, tôi đã xác định một quy tắc khác để chỉ định nếu chú giải công cụ phải biến mất khi di chuột qua nó nhưng bên ngoài cha mẹ, với một thuộc tính tùy chỉnh khác data-tooltip-persistent
và quy tắc đơn giản:
[data-tooltip]:not([data-tooltip-persistent]):before {
pointer-events: none;
}
Lưu ý 1: Phạm vi trình duyệt cho điều này rất rộng, nhưng hãy xem xét sử dụng dự phòng javascript (nếu cần) cho IE cũ.
Lưu ý 2: một cải tiến có thể là thêm một chút javascript để tính toán vị trí chuột và thêm nó vào các phần tử giả, bằng cách thay đổi một lớp được áp dụng cho nó.
<br>
và những người khác thích \n
hoặc \r
vì chúng chỉ xuất hiện dưới dạng văn bản đơn giản trong phần còn lại của chuỗi. Cập nhật: Tôi chỉ nhận thấy việc thiết lập độ rộng tối đa làm cho nó tự động điều chỉnh nội dung của nó và đặt ngắt dòng. Thực sự gọn gàng! (Tuy nhiên, nếu ai đó biết câu trả lời, tôi vẫn đánh giá cao điều đó)
Bạn hoàn toàn không cần JavaScript cho việc này; chỉ cần đặt title
thuộc tính :
<div title="Hello, World!">
<label>Name</label>
<input type="text"/>
</div>
Lưu ý rằng bản trình bày trực quan của tooltip phụ thuộc vào trình duyệt / HĐH, vì vậy nó có thể mờ dần và có thể không. Tuy nhiên, đây là cách ngữ nghĩa để thực hiện các chú giải công cụ và nó sẽ hoạt động chính xác với phần mềm trợ năng như trình đọc màn hình.
<div title="Hello, World!">
<label>Name</label>
<input type="text"/>
</div>
title
thuộc tính chỉ không cắt nó.
title
làm việc. Có những câu trả lời khác phức tạp hơn nếu bạn cần một cái gì đó phức tạp hơn. Tôi thực sự không chắc chắn những gì bạn đang cố gắng để làm ở đây.
Đây là một Tooltip jQuery đẹp:
Để thực hiện điều này, chỉ cần làm theo các bước sau:
Thêm mã này vào <head></head>
thẻ của bạn :
<script type="text/javascript" src="http://cdn.jquerytools.org/1.2.5/full/jquery.tools.min.js"></script>
<script type="text/javascript">
$("[title]").tooltip();
</script>
<style type="text/css">
/* tooltip styling. by default the element to be styled is .tooltip */
.tooltip {
display:none;
background:transparent url(https://dl.dropboxusercontent.com/u/25819920/tooltip/black_arrow.png);
font-size:12px;
height:70px;
width:160px;
padding:25px;
color:#fff;
}
</style>
Trên các phần tử HTML mà bạn muốn có chú giải công cụ, chỉ cần thêm một title
thuộc tính cho nó. Bất cứ văn bản nào trong thuộc tính tiêu đề sẽ có trong tooltip.
Lưu ý: Khi JavaScript bị vô hiệu hóa, nó sẽ chuyển sang trình duyệt công cụ / trình điều hành hệ điều hành mặc định.
Tôi đã làm một cái gì đó có thể thích nghi với div.
HTML
<td>
<%# (Eval("Name").ToString().Length > 65) ? Eval("Name").ToString().Substring(0, 60) + "..." : Eval("Name")%>
<span class="showonhover">
<a href="#"><%# (Eval("Name").ToString().Length > 65) ? "More" : "" %></a>
<span class="hovertext">
<%# Eval("Name") %>
</span>
</span>
</td>
CSS
.showonhover .hovertext { display: none;}
.showonhover:hover .hovertext {display: inline;}
a.viewdescription {color:#999;}
a.viewdescription:hover {background-color:#999; color: White;}
.hovertext {position:absolute;z-index:1000;border:1px solid #ffd971;background-color:#fffdce;padding:11px;width:150px;font-size: 0.75em;}
Để thảo luận sâu hơn, xem bài viết của tôi:
Đây là một triển khai CSS 3 thuần túy (với tùy chọn JS)
Điều duy nhất bạn phải làm là đặt một thuộc tính trên bất kỳ div nào được gọi là "data-tooltip" và văn bản đó sẽ được hiển thị bên cạnh nó khi bạn di chuột qua nó.
Tôi đã bao gồm một số JavaScript tùy chọn sẽ khiến chú giải công cụ được hiển thị gần con trỏ. Nếu bạn không cần tính năng này, bạn có thể bỏ qua phần JavaScript một cách an toàn.
Nếu bạn không muốn làm mờ dần ở trạng thái di chuột, chỉ cần xóa thuộc tính chuyển tiếp .
Nó được tạo kiểu như title
tooltip bất động sản. Đây là JSFiddle: http://jsfiddle.net/toe0hcyn/1/
Ví dụ HTML:
<div data-tooltip="your tooltip message"></div>
CSS:
*[data-tooltip] {
position: relative;
}
*[data-tooltip]::after {
content: attr(data-tooltip);
position: absolute;
top: -20px;
right: -20px;
width: 150px;
pointer-events: none;
opacity: 0;
-webkit-transition: opacity .15s ease-in-out;
-moz-transition: opacity .15s ease-in-out;
-ms-transition: opacity .15s ease-in-out;
-o-transition: opacity .15s ease-in-out;
transition: opacity .15s ease-in-out;
display: block;
font-size: 12px;
line-height: 16px;
background: #fefdcd;
padding: 2px 2px;
border: 1px solid #c0c0c0;
box-shadow: 2px 4px 5px rgba(0, 0, 0, 0.4);
}
*[data-tooltip]:hover::after {
opacity: 1;
}
JavaScript tùy chọn để thay đổi vị trí chú giải công cụ dựa trên vị trí chuột:
var style = document.createElement('style');
document.head.appendChild(style);
var matchingElements = [];
var allElements = document.getElementsByTagName('*');
for (var i = 0, n = allElements.length; i < n; i++) {
var attr = allElements[i].getAttribute('data-tooltip');
if (attr) {
allElements[i].addEventListener('mouseover', hoverEvent);
}
}
function hoverEvent(event) {
event.preventDefault();
x = event.x - this.offsetLeft;
y = event.y - this.offsetTop;
// Make it hang below the cursor a bit.
y += 10;
style.innerHTML = '*[data-tooltip]::after { left: ' + x + 'px; top: ' + y + 'px }'
}
Được rồi, đây là tất cả các yêu cầu tiền thưởng của bạn đã đáp ứng:
Đây là bản demo và liên kết đến mã của tôi (JSFiddle)
Dưới đây là các tính năng mà tôi đã tích hợp vào câu đố hoàn toàn về JS, CSS và HTML5 này:
HTML:
<div id="wrapper">
<div id="a">Hover over this div to see a cool tool tip!</div>
</div>
CSS:
#a{
background-color:yellow;
padding:10px;
border:2px solid red;
}
.tooltip{
background:black;
color:white;
padding:5px;
box-shadow:0 0 10px 0 rgba(0, 0, 0, 1);
border-radius:10px;
opacity:0;
}
JavaScript:
var div = document.getElementById('wrapper');
var a = document.getElementById("a");
var fadeSpeed = 25; // a value between 1 and 1000 where 1000 will take 10
// seconds to fade in and out and 1 will take 0.01 sec.
var tipMessage = "The content of the tooltip...";
var showTip = function(){
var tip = document.createElement("span");
tip.className = "tooltip";
tip.id = "tip";
tip.innerHTML = tipMessage;
div.appendChild(tip);
tip.style.opacity="0"; // to start with...
var intId = setInterval(function(){
newOpacity = parseFloat(tip.style.opacity)+0.1;
tip.style.opacity = newOpacity.toString();
if(tip.style.opacity == "1"){
clearInterval(intId);
}
}, fadeSpeed);
};
var hideTip = function(){
var tip = document.getElementById("tip");
var intId = setInterval(function(){
newOpacity = parseFloat(tip.style.opacity)-0.1;
tip.style.opacity = newOpacity.toString();
if(tip.style.opacity == "0"){
clearInterval(intId);
tip.remove();
}
}, fadeSpeed);
tip.remove();
};
a.addEventListener("mouseover", showTip, false);
a.addEventListener("mouseout", hideTip, false);
Bạn có thể tạo các chú giải công cụ CSS tùy chỉnh bằng cách sử dụng thuộc tính dữ liệu, các phần tử giả và content: attr()
vd.
http://jsfiddle.net/clintioo/gLeydk0k/11/
<div data-tooltip="This is my tooltip">
<label>Name</label>
<input type="text" />
</div>
.
div:hover:before {
content: attr(data-tooltip);
position: absolute;
padding: 5px 10px;
margin: -3px 0 0 180px;
background: orange;
color: white;
border-radius: 3px;
}
div:hover:after {
content: '';
position: absolute;
margin: 6px 0 0 3px;
width: 0;
height: 0;
border-top: 5px solid transparent;
border-right: 10px solid orange;
border-bottom: 5px solid transparent;
}
input[type="text"] {
width: 125px;
-webkit-box-sizing: border-box;
-moz-box-sizing: border-box;
box-sizing: border-box;
}
Cách đơn giản nhất là đặt position: relative
phần tử chứa và position: absolute
phần tử chú giải công cụ bên trong vùng chứa để làm cho nó nổi so với phần tử cha (phần tử chứa). Ví dụ:
<div style="background: yellow;">
<div style="display: inline-block; position: relative; background: pink;">
<label>Name</label>
<input type="text" />
<div style="background: #e5e5e5; position: absolute; top: -10px; left: 0; right: 0;">
Tooltip text
</div>
</div>
</div>
Bạn có thể sử dụng tiêu đề. nó sẽ làm việc cho tất cả mọi thứ
<div title="Great for making new friends through cooperation.">
<input script=JavaScript type=button title="Click for a compliment" onclick="window.alert('Your hair reminds me of a sunset across a prairie')" value="making you happy">
<table title="Great job working for those who understand the way i feel">
chỉ cần nghĩ về bất kỳ thẻ nào có thể hiển thị trên cửa sổ html và chèn một title="whatever tooltip you'd like"
thẻ bên trong nó và bạn đã có cho mình một chú giải công cụ.
Bạn có thể chuyển đổi một div con trong onmouseover
và onmouseout
như thế này:
function Tooltip(el, text) {
el.onmouseover = function() {
el.innerHTML += '<div class="tooltip">' + text + '</div>'
}
el.onmouseout = function() {
el.removeChild(el.querySelector(".tooltip"))
}
}
//Sample Usage
Tooltip(document.getElementById("mydiv"),"hello im a tip div")
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>jQuery UI tooltip</title>
<link rel="stylesheet" href="http://code.jquery.com/ui/1.11.0/themes/smoothness/jquery-ui.css">
<script src="http://code.jquery.com/jquery-1.10.2.js"></script>
<script src="http://code.jquery.com/ui/1.11.0/jquery-ui.js"></script>
<script>
$(function() {
$("#tooltip").tooltip();
});
</script>
</head>
<body>
<div id="tooltip" title="I am tooltip">mouse over me</div>
</body>
</html>
Bạn cũng có thể tùy chỉnh kiểu tooltip. Vui lòng tham khảo liên kết này: http://jqueryui.com/tooltip/#custom-style
Một giải pháp chỉ dành cho CSS3 có thể là:
CSS3:
div[id^="tooltip"]:after {content: attr(data-title); background: #e5e5e5; position: absolute; top: -10px; left: 0; right: 0; z-index: 1000;}
HTML5:
<div style="background: yellow;">
<div id="tooltip-1" data-title="Tooltip Text" style="display: inline-block; position: relative; background: pink;">
<label>Name</label>
<input type="text" />
</div>
</div>
Sau đó, bạn có thể tạo một tooltip-2
div theo cùng một cách ... tất nhiên bạn cũng có thể sử dụng title
thuộc tính thay vì data
thuộc tính.
[id^=tooltip]
bộ chọn khi bạn có thể vừa sử dụng một lớp và .tooltip
?
div[data-title])
không phải thêm đánh dấu bổ sung.
Thử cái này. Bạn có thể làm điều đó chỉ với css và tôi chỉ thêm data-title
thuộc tính cho tooltip.
.tooltip{
position:relative;
display: inline-block;
}
.tooltip[data-title]:hover:after {
content: attr(data-title);
padding: 4px 8px;
color: #fff;
position: absolute;
left: 0;
top: 110%;
white-space: nowrap;
border-radius: 5px;
background:#000;
}
<div data-title="My tooltip" class="tooltip">
<label>Name</label>
<input type="text"/>
</div>
Tôi đã phát triển ba loại hiệu ứng mờ dần:
/* setup tooltips */
.tooltip {
position: relative;
}
.tooltip:before,
.tooltip:after {
display: block;
opacity: 0;
pointer-events: none;
position: absolute;
}
.tooltip:after {
border-right: 6px solid transparent;
border-bottom: 6px solid rgba(0,0,0,.75);
border-left: 6px solid transparent;
content: '';
height: 0;
top: 20px;
left: 20px;
width: 0;
}
.tooltip:before {
background: rgba(0,0,0,.75);
border-radius: 2px;
color: #fff;
content: attr(data-title);
font-size: 14px;
padding: 6px 10px;
top: 26px;
white-space: nowrap;
}
/* the animations */
/* fade */
.tooltip.fade:after,
.tooltip.fade:before {
transform: translate3d(0,-10px,0);
transition: all .15s ease-in-out;
}
.tooltip.fade:hover:after,
.tooltip.fade:hover:before {
opacity: 1;
transform: translate3d(0,0,0);
}
/* expand */
.tooltip.expand:before {
transform: scale3d(.2,.2,1);
transition: all .2s ease-in-out;
}
.tooltip.expand:after {
transform: translate3d(0,6px,0);
transition: all .1s ease-in-out;
}
.tooltip.expand:hover:before,
.tooltip.expand:hover:after {
opacity: 1;
transform: scale3d(1,1,1);
}
.tooltip.expand:hover:after {
transition: all .2s .1s ease-in-out;
}
/* swing */
.tooltip.swing:before,
.tooltip.swing:after {
transform: translate3d(0,30px,0) rotate3d(0,0,1,60deg);
transform-origin: 0 0;
transition: transform .15s ease-in-out, opacity .2s;
}
.tooltip.swing:after {
transform: translate3d(0,60px,0);
transition: transform .15s ease-in-out, opacity .2s;
}
.tooltip.swing:hover:before,
.tooltip.swing:hover:after {
opacity: 1;
transform: translate3d(0,0,0) rotate3d(1,1,1,0deg);
}
/* basic styling: has nothing to do with tooltips: */
h1 {
padding-left: 50px;
}
ul {
margin-bottom: 40px;
}
li {
cursor: pointer;
display: inline-block;
padding: 0 10px;
}
<h1>FADE</h1>
<div class="tooltip fade" data-title="Hypertext Markup Language">
<label>Name</label>
<input type="text"/>
</div>
<h1>EXPAND</h1>
<div class="tooltip expand" data-title="Hypertext Markup Language">
<label>Name</label>
<input type="text"/>
</div>
<h1>SWING</h1>
<div class="tooltip swing" data-title="Hypertext Markup Language">
<label>Name</label>
<input type="text"/>
</div>
Đây là một triển khai chú giải công cụ đơn giản giúp tính đến vị trí của chuột cũng như chiều cao và chiều rộng của cửa sổ của bạn:
function showTooltip(e) {
var tooltip = e.target.classList.contains("tooltip")
? e.target
: e.target.querySelector(":scope .tooltip");
tooltip.style.left =
(e.pageX + tooltip.clientWidth + 10 < document.body.clientWidth)
? (e.pageX + 10 + "px")
: (document.body.clientWidth + 5 - tooltip.clientWidth + "px");
tooltip.style.top =
(e.pageY + tooltip.clientHeight + 10 < document.body.clientHeight)
? (e.pageY + 10 + "px")
: (document.body.clientHeight + 5 - tooltip.clientHeight + "px");
}
var tooltips = document.querySelectorAll('.couponcode');
for(var i = 0; i < tooltips.length; i++) {
tooltips[i].addEventListener('mousemove', showTooltip);
}
.couponcode {
color: red;
cursor: pointer;
}
.couponcode:hover .tooltip {
display: block;
}
.tooltip {
position: absolute;
white-space: nowrap;
display: none;
background: #ffffcc;
border: 1px solid black;
padding: 5px;
z-index: 1000;
color: black;
}
Lorem ipsum dolor sit amet, <span class="couponcode">consectetur
adipiscing<span class="tooltip">This is a tooltip</span></span>
elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi
ut aliquip ex ea commodo consequat. Duis aute irure dolor in <span
class="couponcode">reprehenderit<span class="tooltip">This is
another tooltip</span></span> in voluptate velit esse cillum dolore eu
fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident,
sunt in culpa qui officia deserunt mollit anim id est <span
class="couponcode">laborum<span class="tooltip">This is yet
another tooltip</span></span>.
(xem thêm Fiddle này )
Không cần sử dụng bất kỳ API nào Bạn cũng có thể làm điều gì đó tương tự bằng cách sử dụng CSS và Jquery Demo thuần túy
HTML
<div class="pointer_tooltip">
Click & Drag to draw the area
</div>
CSS
.pointer_tooltip{
width : auto;
height : auto;
padding : 10px;
border-radius : 5px;
background-color : #fff;
position: absolute;
}
Jquery
$(document).mousemove(function( event ) {
var pageCoords = "( " + event.pageX + ", " + event.pageY + " )";
//set the actuall width
$('.pointer_tooltip').width($('.pointer_tooltip').width());
var position_top = event.pageY+18;
var position_left = event.pageX-60;
var width=$('body').width()-$('.pointer_tooltip').width();
//check if left not minus
if(position_left<0){
position_left=10;
}else if(position_left > width){
position_left=width-10;
}
$('.pointer_tooltip').css('top',position_top+'px');
$('.pointer_tooltip').css('left',position_left+'px');
});
Bạn có thể tạo tooltip bằng CSS thuần. Hãy thử cái này. Hy vọng nó sẽ giúp bạn giải quyết vấn đề của bạn.
HTML
<div class="tooltip"> Name
<span class="tooltiptext">Add your tooltip text here.</span>
</div>
CSS
.tooltip {
position: relative;
display: inline-block;
cursor: pointer;
}
.tooltip .tooltiptext {
visibility: hidden;
width: 270px;
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 1s;
}
.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;
}
div {
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
-ms-transform: translate(-50%, -50%); /* IE 9 */
-webkit-transform: translate(-50%, -50%); /* Chrome, Safari, Opera */
text-align: center;
}
.tooltip {
position: relative;
display: inline-block;
border-bottom: 1px dotted black;
}
.tooltip .tooltiptext {
visibility: hidden;
width: 120px;
background-color: black;
color: #fff;
//text-align: center;
border-radius: 6px;
padding: 5px 0;
/* Position the tooltip */
position: absolute;
z-index: 1;
}
.tooltip:hover .tooltiptext {
visibility: visible;
}
.toolLeft {
top: -5px;
right: 105%;
}
.toolRight {
top: -5px;
left: 105%;
}
.toolTop {
bottom: 100%;
left: 50%;
margin-left: -60px;
}
.toolBottom {
top: 100%;
left: 50%;
margin-left: -60px;
}
<div>
<div class="tooltip">Top <span class="tooltiptext toolTop">Tooltip text</span></div><br />
<div class="tooltip">Left <span class="tooltiptext toolLeft">Tooltip text</span></div><br />
<div class="tooltip">Right <span class="tooltiptext toolRight">Tooltip text</span></div><br />
<div class="tooltip">Bottom <span class="tooltiptext toolBottom">Tooltip text</span></div><br />
</div>
bạn có thể làm điều đó với css đơn giản ... jsfiddle
ở đây bạn có thể xem ví dụ
bên dưới mã css cho tooltip
[data-tooltip] {
position: relative;
z-index: 2;
cursor: pointer;
}
/* Hide the tooltip content by default */
[data-tooltip]:before,
[data-tooltip]:after {
visibility: hidden;
-ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=0)";
filter: progid: DXImageTransform.Microsoft.Alpha(Opacity=0);
opacity: 0;
pointer-events: none;
}
/* Position tooltip above the element */
[data-tooltip]:before {
position: absolute;
bottom: 150%;
left: 50%;
margin-bottom: 5px;
margin-left: -80px;
padding: 7px;
width: 160px;
-webkit-border-radius: 3px;
-moz-border-radius: 3px;
border-radius: 3px;
background-color: #000;
background-color: hsla(0, 0%, 20%, 0.9);
color: #fff;
content: attr(data-tooltip);
text-align: center;
font-size: 14px;
line-height: 1.2;
}
/* Triangle hack to make tooltip look like a speech bubble */
[data-tooltip]:after {
position: absolute;
bottom: 150%;
left: 50%;
margin-left: -5px;
width: 0;
border-top: 5px solid #000;
border-top: 5px solid hsla(0, 0%, 20%, 0.9);
border-right: 5px solid transparent;
border-left: 5px solid transparent;
content: " ";
font-size: 0;
line-height: 0;
}
/* Show tooltip content on hover */
[data-tooltip]:hover:before,
[data-tooltip]:hover:after {
visibility: visible;
-ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=100)";
filter: progid: DXImageTransform.Microsoft.Alpha(Opacity=100);
opacity: 1;
}
Có rất nhiều câu trả lời cho câu hỏi này nhưng vẫn có thể nó sẽ giúp được ai đó. Nó dành cho tất cả các vị trí bên trái, phải, trên cùng, dưới cùng.
Đây là css:
.m-tb-5 {
margin-top: 2px;
margin-bottom: 2px;
}
[data-tooltip] {
display: inline-block;
position: relative;
cursor: help;
padding: 3px;
}
/* Tooltip styling */
[data-tooltip]:before {
content: attr(data-tooltip);
display: none;
position: absolute;
background: #000;
color: #fff;
padding: 3px 6px;
font-size: 10px;
line-height: 1.4;
min-width: 100px;
text-align: center;
border-radius: 4px;
}
/* Dynamic horizontal centering */
[data-tooltip-position="top"]:before,
[data-tooltip-position="bottom"]:before {
left: 50%;
-ms-transform: translateX(-50%);
-moz-transform: translateX(-50%);
-webkit-transform: translateX(-50%);
transform: translateX(-50%);
}
/* Dynamic vertical centering */
[data-tooltip-position="right"]:before,
[data-tooltip-position="left"]:before {
top: 50%;
-ms-transform: translateY(-50%);
-moz-transform: translateY(-50%);
-webkit-transform: translateY(-50%);
transform: translateY(-50%);
}
[data-tooltip-position="top"]:before {
bottom: 100%;
margin-bottom: 6px;
}
[data-tooltip-position="right"]:before {
left: 100%;
margin-left: 6px;
}
[data-tooltip-position="bottom"]:before {
top: 100%;
margin-top: 6px;
}
[data-tooltip-position="left"]:before {
right: 100%;
margin-right: 6px;
}
/* Tooltip arrow styling/placement */
[data-tooltip]:after {
content: '';
display: none;
position: absolute;
width: 0;
height: 0;
border-color: transparent;
border-style: solid;
}
/* Dynamic horizontal centering for the tooltip */
[data-tooltip-position="top"]:after,
[data-tooltip-position="bottom"]:after {
left: 50%;
margin-left: -6px;
}
/* Dynamic vertical centering for the tooltip */
[data-tooltip-position="right"]:after,
[data-tooltip-position="left"]:after {
top: 50%;
margin-top: -6px;
}
[data-tooltip-position="top"]:after {
bottom: 100%;
border-width: 6px 6px 0;
border-top-color: #000;
}
[data-tooltip-position="right"]:after {
left: 100%;
border-width: 6px 6px 6px 0;
border-right-color: #000;
}
[data-tooltip-position="left"]:after {
right: 100%;
border-width: 6px 0 6px 6px;
border-left-color: #000;
}
/* Show the tooltip when hovering */
[data-tooltip]:hover:before,
[data-tooltip]:hover:after {
display: block;
z-index: 50;
}
Và thẻ HTML có thể như thế này:
<p data-tooltip-position="right" data-tooltip="Some tooltip text here" title="">Text Here</p>
<p data-tooltip-position="left" data-tooltip="Some tooltip text here" title="">Text Here</p>
<p data-tooltip-position="top" data-tooltip="Some tooltip text here" title="">Text Here</p>
<p data-tooltip-position="bottom" data-tooltip="Some tooltip text here" title="">Text Here</p>
bạn cũng có thể sử dụng nó như tooltip ... Nó hoạt động tương tự nhưng bạn phải viết thêm thẻ đó ..
<abbr title="THis is tooltip"></abbr>
Và phiên bản của tôi
.tooltip{
display: inline;
position: relative; /** very important set to relative*/
}
.tooltip:hover:after{
background: #333;
background: rgba(0,0,0,.8);
border-radius: 5px;
bottom: 26px;
color: #fff;
content: attr(title); /**extract the content from the title */
left: 20%;
padding: 5px 15px;
position: absolute;
z-index: 98;
width: 220px;
}
.tooltip:hover:before{
border: solid;
border-color: #333 transparent;
border-width: 6px 6px 0 6px;
bottom: 20px;
content: "";
left: 50%;
position: absolute;
z-index: 99;
}
Sau đó, HTML
<div title="This is some information for our tooltip." class="tooltip">bar </div>
Azle có một triển khai tốt đẹp. Giả sử phần tử đích của tôilà một biểu tượng, với tên lớp "my_icon". Chỉ cần nhắm mục tiêu phần tử bằng hàm add_tooltip của Azle :
az.add_tooltip('my_icon', 1, {
"this_class" : "my_tooltip",
"text" : "HELLO THERE!"
})
Bạn có thể kiểm soát vị trí và kiểu dáng của chú giải công cụ bằng cách sử dụng kiểu CSS thông thường . Chú giải công cụ trên được tạo kiểu như sau:
az.style_tooltip('my_tooltip', 1, {
"background" : "black",
"margin-left" : "10px",
"color" : "hotpink",
"font-weight" : "bold",
"font-family" : "Arial",
"padding" : "10px",
"border-radius" : "10px"
})
Chúng tôi cũng có thể thêm một hình ảnh vào tooltip, bằng cách chỉ định một "image_path":
az.add_tooltip('my_icon', 1, {
"this_class" : "my_tooltip",
"text" : "HELLO THERE!",
"image_path" : "https://cdn-images-1.medium.com/max/1874/1*toepgVwopga9TYFpSkSxXw.png",
"image_class" : "my_image"
})
Vì chúng tôi đã chỉ định một "image_group" ở trên, chúng tôi có thể định kiểu hình ảnh bằng cách sử dụng cùng hàm style_tooltip, lần này nhắm mục tiêu vào hình ảnh. Hình ảnh chơi game ở trên được tạo kiểu như sau:
az.style_tooltip('my_image', 1, {
"width" : "50px",
"align" : "center"
})
Đây là một ví dụ sử dụng hình ảnh lớn hơn :
... được thêm và tạo kiểu như sau:
az.add_tooltip('my_icon', 1, {
"this_class" : "my_tooltip",
"text" : "MORE INFO<br><br>",
"image_path" : "https://i0.wp.com/proactive.ie/wp-content/uploads/2017/11/Infographic.jpg?resize=1240%2C1062&ssl=1",
"image_class" : "my_image"
})
az.style_tooltip('my_image', 1, {
"width" : "500px"
})
Đây là một GIST của toàn bộ mã.
Bạn có thể chơi xung quanh trong FIDDLE này .
Thêm Tooltip vào div
<style>
.tooltip {
position: relative;
display: inline-block;
border-bottom: 1px dotted black;
}
.tooltip .tooltiptext {
visibility: hidden;
width: 120px;
background-color: black;
color: #fff;
text-align: center;
border-radius: 6px;
padding: 5px 0;
/* Position the tooltip */
position: absolute;
z-index: 1;
}
.tooltip:hover .tooltiptext {
visibility: visible;
}
</style>
<div class="tooltip">Hover over me
<span class="tooltiptext">Information</span>
</div>
<div title="tooltip text..">
Your Text....
</div>
Cách đơn giản nhất để thêm tooltip vào phần tử div của bạn.