#html #css
#HTML #css
Вопрос:
Я пытаюсь прикрепить всплывающую подсказку к кнопке.
.hangup_button {
display: block;
margin-left: auto;
margin-right: auto;
margin-bottom: 25px;
}
.contained_message {
visibility: hidden;
width: 120px;
background-color: black;
color: #fff;
text-align: center;
border-radius: 6px;
padding: 5px 0;
position: absolute;
z-index: 1;
}
.messageContain:hover .contained_message{
visibility: visible;
}
<div class="container_div">
<button class="hangup_button messageContain">
End Chat
<span class="contained_message">Terminate session. Charges stop accumulating.</span>
</button>
</div>
Проблема, с которой я сталкиваюсь, заключается в том, что всплывающая подсказка появляется внизу кнопки. Я пытаюсь сделать так, чтобы она отображалась в верхней части кнопки. До сих пор я пытался переключить <span class="contained_message">
на начало End Chat
текста. Но всплывающая подсказка по-прежнему превышает нижнюю часть кнопки. Я также пытался добавить position: relative;
в .contained_message
. Кажется, это портит всю кнопку. Что я должен сделать, чтобы всплывающая подсказка отображалась в верхней части кнопки, не выходя за пределы нижней части кнопки?
Комментарии:
1. Что-то с
position: absolute
будет позиционироваться внутри ближайшего позиционируемого родительского элемента. Если вы хотите, чтобы она располагалась абсолютно внутри кнопки, добавьте свойposition: relative
в любой.messageContain.
или.hangup_button
2. Это поможет для будущих ссылок — w3schools.com/css/css_tooltip.asp
Ответ №1:
Я добавил некоторые изменения, чтобы заставить его работать:
- Использовать
position: relative
для родительского элемента. - Используйте
transform: translate
, чтобы получить желаемое размещение, а такжеtop: -5px
(может быть 0, но -5 дает ему хорошее пространство) - Я изменил его на
display: none / block
вместо использования видимости, поскольку это может быть более желательно (при условии, что вы не хотите делать переходы). - Чтобы центрировать всплывающую подсказку по горизонтали,
left: 50%
сtranslate(-50%, ...)
помощью делает трюк.
Рабочий фрагмент:
.hangup_button {
display: block;
margin-left: auto;
margin-right: auto;
margin-bottom: 25px;
margin-top: 80px;
position: relative;
}
.contained_message {
display: none;
width: 120px;
background-color: black;
color: #fff;
text-align: center;
border-radius: 6px;
padding: 5px 0;
position: absolute;
z-index: 1;
transform: translate(-50%, -100%);
left: 50%;
top: -5px;
}
.messageContain:hover .contained_message{
display: block;
}
<div class="container_div">
<button class="hangup_button messageContain">
End Chat
<span class="contained_message">Terminate session. Charges stop accumulating.</span>
</button>
</div>