CSS Підказка
Як створити виринаючі підказки за допомогою CSS?
Демо: Приклади підказок
Підказка часто використовується для вказування додаткової інформації про що-небудь, коли користувач наводить вказівник миші на елемент:
Основна (базова) підказка
Створіть виринаючу підказку, яка з’являється, коли користувач наводить вказівник миші на елемент:
Приклад
<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;
padding: 5px 0;
border-radius: 6px;
/* Розмістіть текст виринаючої підказки - див. Приклади нижче! */
position: absolute;
z-index: 1;
}
/* Показувати текст виринаючої підказки при наведенні вказівника миші на контейнер виринаючої підказки */
.tooltip:hover .tooltiptext {
visibility: visible;
}
</style>
<div class="tooltip">Наведіть на мене
<span class="tooltiptext">Текст підказки</span>
</div>
Спробуйте самі »
Пояснення прикладу
HTML: Використовуйте елемент контейнеру (наприклад <div>) і додайте в нього клас "tooltip". Коли користувач наведе курсор на цей <div>, він покаже текст виринаючої підказки.
Текст виринаючої підказки розміщується всередині вбудованого елемента (наприклад, <span>) із class="tooltiptext".
CSS: Клас tooltip застосовується position:relative, який необхідний для позиционування тексту виринаючої підказки (position:absolute).
Примітка: Нижче наведені приклади того, як розташувати підказку.
Клас tooltiptext містить фактичний текст виринаючої підказки. За замовчуванням він прихований і буде видимий при наведенні (див. вище). Ми також додали в нього декілька основних стилів: ширину 120px, колір чорного фону, колір білого тексту, відцентрований текст, верхній і нижній відступи 5px.
CSS властивість border-radius використовується для додавання закруглених кутів до тексту виринаючої підказки.
Селектор :hover використовується для відображення тексту виринаючої підказки, коли користувач наводить вказівник миші на <div> із class="tooltip".
Позиціонування виринаючих підказок
В цьому прикладі виринаюча підказка знаходиться праворуч (left:105%) від "наведеного" тексту (<div>). Також зверніть увагу, що top:-5px використовується для розміщення його в середині елемента контейнеру. Ми використовуємо число 5, тому що текст виринаючої підказки має верхній та нижній відступи 5px. Якщо ви збільшите його відступ, також збільште значення властивості 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; /* Використовуйте половину ширини (120/2 = 60), щоб центрувати підказку */
}
Результат:
Підказка внизу
.tooltip .tooltiptext {
width: 120px;
top: 100%;
left: 50%;
margin-left: -60px; /* Використовуйте половину ширини (120/2 = 60), щоб центрувати підказку */
}
Результат:
Підказка зі стрілкою
Щоб створити стрілку, яка має з’являтися з визначеної сторони виринаючої підказки, додайте "пустий" зміст після виринаючої підказки з класом псевдоелементу ::after разом із властивістю content. Сама стрілка створена з використанням меж. Це зробить підказку схожою на розмовний пузир.
Цей приклад демонструє, як додати стрілку внизу виринаючої підказки:
Нижня стрілка
.tooltip .tooltiptext::after {
content: " ";
position: absolute;
top: 100%; /* В нижній частині виринаючої підказки */
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%; /* В верхній частині виринаючої підказки */
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%; /* Зліва від виринаючої підказки */
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%; /* Праворуч від виринаючої підказки */
margin-top: -5px;
border-width: 5px;
border-style: solid;
border-color: transparent transparent transparent black;
}
Результат:
Виринаючі підказки (анімація)
Якщо ви хочете затемнити текст виринаючої підказки, коли він збирається бути видимим, ви можете використовувати CSS властивість transition разом з властивістю opacity, і воно стає від повністю невидимого до 100% видимим за вказану кількість секунд (в нашому прикладі це 1 секунда):
Приклад
.tooltip .tooltiptext {
opacity: 0;
transition: opacity 1s;
}
.tooltip:hover .tooltiptext {
opacity: 1;
}
Спробуйте самі »

