CSS -подсказка
Создавайте всплывающие подсказки с помощью CSS.
Демонстрация: примеры подсказок
Подсказка часто используется для указания дополнительной информации о чем-либо, когда пользователь наводит указатель мыши на элемент:
Основная подсказка
Создайте всплывающую подсказку, которая появляется, когда пользователь наводит указатель мыши на элемент:
Пример
<style>
/* Tooltip container */
.tooltip {
position: relative;
display: inline-block;
border-bottom: 1px dotted
black; /* If you want dots under the hoverable text */
}
/* Tooltip text
*/
.tooltip .tooltiptext {
visibility: hidden;
width: 120px;
background-color: black;
color: #fff;
text-align: center;
padding: 5px 0;
border-radius: 6px;
/* Position the tooltip text - see examples below! */
position: absolute;
z-index: 1;
}
/* Show
the tooltip text when you mouse over the tooltip container */
.tooltip:hover
.tooltiptext {
visibility: visible;
}
</style>
<div class="tooltip">Hover
over me
<span class="tooltiptext">Tooltip
text</span>
</div>
Объяснение примера
HTML: используйте элемент-контейнер (например, <div>) и добавьте к
"tooltip"
нему класс. Когда пользователь наведет курсор на этот <div>, он покажет текст всплывающей подсказки.
Текст всплывающей подсказки помещается внутри встроенного элемента (например, <span>) с расширением class="tooltiptext"
.
CSS: класс tooltip
использует position:relative
, который необходим для позиционирования текста всплывающей подсказки ( position:absolute
).
Примечание. Ниже приведены примеры размещения всплывающей подсказки.
Класс tooltiptext
содержит фактический текст всплывающей подсказки. По умолчанию он скрыт и будет виден при наведении (см. ниже). Мы также добавили к нему несколько основных стилей: ширина 120 пикселей, черный цвет фона, белый цвет текста, текст по центру и отступы по 5 пикселей сверху и снизу.
Свойство CSS border-radius
используется для добавления закругленных углов к тексту всплывающей подсказки.
Селектор :hover
используется для отображения текста всплывающей подсказки, когда пользователь наводит указатель мыши на <div> с помощью class="tooltip"
.
Подсказки по позиционированию
В этом примере всплывающая подсказка размещается справа ( left:105%
) от «наводимого» текста (<div>). Также обратите внимание, что top:-5px
используется для размещения его в середине элемента-контейнера. Мы используем число 5 , потому что текст всплывающей подсказки имеет верхний и нижний отступы по 5 пикселей. Если вы увеличиваете его отступ, также увеличьте значение top
свойства, чтобы оно оставалось посередине (если вы этого хотите). То же самое применимо, если вы хотите, чтобы всплывающая подсказка располагалась слева.
Правая подсказка
.tooltip .tooltiptext {
top: -5px;
left:
105%;
}
Результат:
Левая подсказка
.tooltip .tooltiptext {
top: -5px;
right:
105%;
}
Результат:
Если вы хотите, чтобы всплывающая подсказка отображалась сверху или снизу, см. примеры ниже. Обратите внимание, что мы используем margin-left
свойство со значением минус 60 пикселей. Это нужно для того, чтобы центрировать всплывающую подсказку над/под наводимым текстом. Он равен половине ширины всплывающей подсказки (120/2 = 60).
Верхняя подсказка
.tooltip .tooltiptext {
width: 120px;
bottom: 100%;
left:
50%;
margin-left: -60px; /* Use half of the width
(120/2 = 60), to center the tooltip */
}
Результат:
Нижняя подсказка
.tooltip .tooltiptext {
width: 120px;
top: 100%;
left:
50%;
margin-left: -60px; /* Use half of the width
(120/2 = 60), to center the tooltip */
}
Результат:
Стрелки всплывающей подсказки
Чтобы создать стрелку, которая должна появляться с определенной стороны всплывающей подсказки, добавьте «пустое» содержимое после всплывающей подсказки с классом псевдоэлемента ::after
вместе со content
свойством. Сама стрелка создается с помощью границ. Это сделает всплывающую подсказку похожей на речевой пузырь.
В этом примере показано, как добавить стрелку в нижнюю часть всплывающей подсказки:
Нижняя стрелка
.tooltip .tooltiptext::after {
content: " ";
position: absolute;
top: 100%;
/* At the bottom of the tooltip */
left: 50%;
margin-left: -5px;
border-width: 5px;
border-style: solid;
border-color: black transparent transparent transparent;
}
Результат:
Объяснение примера
Поместите стрелку внутри всплывающей подсказки: top: 100%
поместит стрелку в нижнюю часть всплывающей подсказки. left: 50%
будет центрировать стрелку.
Примечание . Свойство border-width
определяет размер стрелки. Если вы измените это, также измените margin-left
значение на то же самое. Это позволит держать стрелку в центре.
Используется border-color
для преобразования содержимого в стрелку. Мы устанавливаем верхнюю границу черной, а остальные — прозрачными. Если бы все стороны были черными, у вас получился бы черный квадрат.
В этом примере показано, как добавить стрелку вверху всплывающей подсказки. Обратите внимание, что на этот раз мы установили цвет нижней границы:
Верхняя стрелка
.tooltip .tooltiptext::after {
content: " ";
position: absolute;
bottom: 100%; /* At the top of the tooltip */
left: 50%;
margin-left: -5px;
border-width: 5px;
border-style: solid;
border-color: transparent transparent black transparent;
}
Результат:
В этом примере показано, как добавить стрелку слева от всплывающей подсказки:
Стрелка влево
.tooltip .tooltiptext::after {
content: " ";
position: absolute;
top: 50%;
right: 100%; /* To the left of the tooltip
*/
margin-top: -5px;
border-width: 5px;
border-style: solid;
border-color: transparent black transparent transparent;
}
Результат:
В этом примере показано, как добавить стрелку справа от всплывающей подсказки:
Правая стрелка
.tooltip .tooltiptext::after {
content: " ";
position: absolute;
top: 50%;
left: 100%; /* To the right of the
tooltip */
margin-top: -5px;
border-width: 5px;
border-style: solid;
border-color: transparent transparent transparent black;
}
Результат:
Исчезновение всплывающих подсказок (анимация)
Если вы хотите, чтобы текст всплывающей подсказки исчезал, когда он вот-вот станет видимым, вы можете использовать transition
свойство CSS вместе со opacity
свойством и перейти от полностью невидимого к 100% видимости за определенное количество секунд (1 секунда в нашем пример):
Пример
.tooltip .tooltiptext {
opacity: 0;
transition: opacity 1s;
}
.tooltip:hover
.tooltiptext {
opacity: 1;
}