Làm cách nào để thêm một mẹo công cụ vào phần tử span?


364

Trong đoạn mã sau, tôi muốn một mẹo công cụ xuất hiện khi người dùng di chuyển nhịp, làm thế nào để tôi làm điều đó? Tôi không muốn sử dụng bất kỳ liên kết.

<span> text </span>

Câu trả lời:


677

Đây là cách đơn giản, tích hợp sẵn:

<span title="My tip">text</span>

Điều đó cung cấp cho bạn các công cụ văn bản đơn giản. Nếu bạn muốn có các chú giải công cụ phong phú, với HTML được định dạng, chúng sẽ cần sử dụng một thư viện để làm điều đó. May mắn thay có rất nhiều trong số đó .


1
Nhưng điều này có hoạt động nếu không có bất kỳ văn bản nào trong khoảng đó? Nói ví dụ một khoảng trống với hình ảnh bg?
Augiwan

1
@UGS: Bạn có chắc yếu tố của bạn là kích thước bạn nghĩ không? Hãy thử cho nó một nền màu hồng như của tôi. :-)
RichieHulum

Cảm ơn rất nhiều.! Nhưng tôi chỉ sử dụng tipsy.js và có vẻ tốt hơn những gì tôi muốn. : D Và bài viết này đã hỗ trợ cho sự nhầm lẫn của tôi: htmlgoodies.com/tutorials/html_401/article.php/3479661/ , trong đó nó nói rằng tooltip hoạt động cho "văn bản"
Augiwan

1
Xin chào, Ai đó có thể làm rõ nếu đây là tiêu chuẩn trong một số / tất cả hương vị HTML không?
Jonathan dos Santos

@jonathan: Đó là tiêu chuẩn kể từ ít nhất HTML4: w3.org/TR/html4/struct/global.html#adef-title
RichieHulum

97

Chú giải công cụ tùy chỉnh với CSS thuần túy - không cần JavaScript:

Ví dụ ở đây (có mã) / Ví dụ toàn màn hình

Để thay thế cho mặc định titletooltips thuộc tính, bạn có thể làm CSS tùy chỉnh của riêng bạn tooltips sử dụng :before/ :after yếu tố giả và HTML5 data-*thuộc tính .

Sử dụng CSS được cung cấp, bạn có thể thêm một chú giải công cụ vào một phần tử bằng data-tooltipthuộc tính.

Bạn cũng có thể kiểm soát vị trí của chú giải công cụ tùy chỉnh bằng cách sử dụng data-tooltip-positionthuộc tính (giá trị được chấp nhận: top/ right/ bottom/ left).

Chẳng hạn, phần sau đây sẽ thêm một bảng công cụ được định vị ở dưới cùng của phần tử span.

<span data-tooltip="Custom tooltip text." data-tooltip-position="bottom">Custom bottom tooltip.</span>

nhập mô tả hình ảnh ở đây

Cái này hoạt động ra sao?

Bạn có thể hiển thị các chú giải công cụ tùy chỉnh với các phần tử giả bằng cách truy xuất các giá trị thuộc tính tùy chỉnh bằng cách sử dụng attr()hàm.

[data-tooltip]:before {
    content: attr(data-tooltip);
}

Về mặt định vị chú giải công cụ, chỉ cần sử dụng bộ chọn thuộc tính và thay đổi vị trí dựa trên giá trị của thuộc tính.

Ví dụ ở đây (có mã) / Ví dụ toàn màn hình

CSS đầy đủ được sử dụng trong ví dụ - tùy chỉnh điều này theo nhu cầu của bạn.

[data-tooltip] {
    display: inline-block;
    position: relative;
    cursor: help;
    padding: 4px;
}
/* Tooltip styling */
[data-tooltip]:before {
    content: attr(data-tooltip);
    display: none;
    position: absolute;
    background: #000;
    color: #fff;
    padding: 4px 8px;
    font-size: 14px;
    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="bottom"]:after {
    top: 100%;
    border-width: 0 6px 6px;
    border-bottom-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;
}

2
@SearchForKnowledge Thật sao? Tôi sẽ xem xét điều đó tại một số điểm. Cảm ơn.
Josh Crozier

5
Có, tôi vừa mới thử nghiệm và cũng không ngạc nhiên khi nó không hoạt động. IE cũ! ;)
SearchForKnowledge

@JoshCrozier nó đã giúp rất nhiều
JIBIN BJ

20

Trong hầu hết các trình duyệt, thuộc tính tiêu đề sẽ hiển thị dưới dạng một chú giải công cụ và thường linh hoạt về loại phần tử mà nó sẽ hoạt động.

<span title="This will show as a tooltip">Mouse over for a tooltip!</span>
<a href="http://www.stackoverflow.com" title="Link to stackoverflow.com">stackoverflow.com</a>
<img src="something.png" alt="Something" title="Something">

Tất cả những thứ đó sẽ kết xuất các chú giải công cụ trong hầu hết mọi trình duyệt.


6

Đối với tooltip cơ bản, bạn muốn:

<span title="This is my tooltip"> Hover on me to see tooltip! </span>


4

các "title"thuộc tính sẽ được sử dụng như văn bản cho tooltip bởi trình duyệt, nếu bạn muốn áp dụng phong cách để nó xem xét sử dụng một số plugin

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.