Як додати наконечник інструмента до елементу прольоту?


364

У наступному коді я хочу, щоб підказка з’явилася, коли користувач наводить на палець, як це зробити? Я не хочу використовувати жодні посилання.

<span> text </span>

Відповіді:


676

Ось простий, вбудований спосіб:

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

Це дає прості текстові підказки. Якщо ви хочете отримати багаті підказки з відформатованим HTML у них, для цього вам потрібно використовувати бібліотеку. На щастя , є багато таких .


1
Але чи спрацьовує це, якщо в проміжку немає тексту? Скажіть, наприклад, порожній проміжок із bg-зображенням?
Augiwan

1
@UGS: Ви впевнені, що ваш елемент має розмір, який ви думаєте? Спробуйте надати йому рожевий фон, як у мене. :-)
RichieHindle

Дуже дякую.! Але я просто використав tipsy.js, і краще виглядає те, що я хотів. : D І ця стаття допомогла в моїй плутанині: htmlgoodies.com/tutorials/html_401/article.php/3479661/… де йдеться про те, що підказка працює на "текст"
Авгуан

1
Привіт, Чи може хтось уточнити, чи це стандарт у деяких / всіх HTML смаках?
Джонатан дос Сантос

@jonathan: Це було стандартно, оскільки принаймні HTML4: w3.org/TR/html4/struct/global.html#adef-title
RichieHindle

97

Спеціальні підказки з чистим CSS - JavaScript не потрібен:

Приклад тут (з кодом) / Приклад на весь екран

Як альтернатива titleпідказкам атрибутів за замовчуванням , ви можете створити власні підказки для CSS, використовуючи :before/ :after pseudo елементи та data-*атрибути HTML5 .

Використовуючи наданий CSS, ви можете додати підказку до елемента за допомогою data-tooltipатрибута.

Ви також можете керувати положенням спеціальної підказки за допомогою data-tooltip-positionатрибута (прийняті значення: top/ right/ bottom/ left).

Наприклад, нижче буде додано панель інструментів, розташована в нижній частині прольотного елемента.

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

введіть тут опис зображення

Як це працює?

Ви можете відобразити власні підказки з псевдоелементами, отримавши значення спеціальних атрибутів за допомогою attr()функції.

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

Що стосується позиціонування підказки, просто скористайтеся селектором атрибутів та змініть розташування на основі значення атрибута.

Приклад тут (з кодом) / Приклад на весь екран

Повний CSS, використаний у прикладі - налаштуйте це під свої потреби.

[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 Справді? Я загляну в це в якийсь момент. Дякую.
Джош Крозьє

5
Так, я просто перевірив його і також не здивувався, що він не працює. Добрий старий IE! ;)
SearchForKnowledge

@JoshCrozier це дуже допомогло
JIBIN BJ

20

У більшості веб-переглядачів атрибут заголовка відображатиметься як підказка, і зазвичай є гнучким щодо того, з якими типами елементів він буде працювати.

<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">

Усі вони відображатимуть підказки у більшості браузерів.



4

"title"атрибут буде використовуватися в якості тексту підказки з допомогою браузера, якщо ви хочете застосувати стиль до нього розглянути питання про використання деяких плагінів

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.