Вы можете переместить всплывающую подсказку в одну строку, используя white-space:nowrap
. Я не знаю ни одного способа центрировать всплывающую подсказку, не задавая конкретную ширину как для всплывающей подсказки, так и для элемента, к которому относится всплывающая подсказка. Вот пример общего назначения (без центрирования):
<p>Lorem <span tooltip="Lorem ipsum">ipsum</span> dolor sit amet.</p>
И CSS:
*[tooltip] {
position: relative;
border-bottom: dotted 1px #000;
}
*[tooltip]:hover:before {
content: attr(tooltip);
background-color: #000;
color: #fff;
top: 1em;
position: absolute;
white-space: nowrap;
}
Обратите внимание, что я использую :before
вместо :after
. Если вы хотите центрировать всплывающую подсказку и можете определить фиксированную ширину, вы можете использовать этот CSS вместо:
*[tooltip] {
position: relative;
display: inline-block;
text-align: center;
width: 200px;
margin: 0 -75px;
}
*[tooltip]:hover:before {
content: attr(tooltip);
background-color: #000;
color: #fff;
top: 1em;
position: absolute;
white-space: nowrap;
width: 200px;
}
Здесь элементу присваивается фиксированная ширина, равная ширине всплывающей подсказки, а затем отрицательные левые / правые поля, чтобы свернуть его обратно до желаемого размера. Обратите внимание на добавление display:inline-block
и text-align:center
.
Этот метод не практичен для встроенных всплывающих подсказок, но хорошо работает для кнопок и ссылок "призыв к действию".