Задать вопрос
@Gedonist

Можно ли на чистом CSS показывать tooltip, только если текст не умещается в блоке?

Для текста в блоке установлены стили:
white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    max-width: 350px;

Также сделан тултип на чистом CSS, в котором показывается полный текст, когда наводишь на блок.
А можно ли сделать так, чтобы тултип появлялся, только если текст не уместился?
Если строка полностью уместилась в блоке, то при наведении ничего не появляется, если страка обрезалась и появилось троеточие, то при наведении появляется тултип.

Есть ли какие-то эвенты, по которым можно понять что текст не уместился и показалось троеточие?
  • Вопрос задан
  • 838 просмотров
Подписаться 3 Простой Комментировать
Помогут разобраться в теме Все курсы
  • Яндекс Практикум
    Профессиональная вёрстка на HTML и CSS
    3 месяца
    Далее
  • Skillbox
    Веб-вёрстка 3.0
    3 месяца
    Далее
  • OTUS
    HTML/CSS
    3 месяца
    Далее
Решения вопроса 1
scoffs
@scoffs
Fullstack | C# | Student
На чистом CSS нет, тут можно сделать с помощью JS

const block = document.getElementById('your-block-id'); // Замените 'your-block-id' на актуальный идентификатор вашего блока

if (block.scrollWidth > block.offsetWidth) {
  // Текст обрезается и появляется троеточие
  // В этом случае вы можете добавить обработчик события наведения мыши, чтобы показать тултип
  block.addEventListener('mouseenter', showTooltip);
  block.addEventListener('mouseleave', hideTooltip);
} else {
  // Текст полностью умещается в блоке
  // В этом случае вы можете удалить обработчики событий или не отображать тултип вообще
  block.removeEventListener('mouseenter', showTooltip);
  block.removeEventListener('mouseleave', hideTooltip);
}

function showTooltip() {
  // Код для показа тултипа
}

function hideTooltip() {
  // Код для скрытия тултипа
}
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
georgi1984
@georgi1984
Нравится JavaScript
Проверять размер внутреннего тега, если он больше внешнего то показывать tooltip
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
ITK academy Нижний Новгород
от 50 000 до 90 000 ₽
FoodSoul Калининград
от 180 000 до 250 000 ₽
Data Directs Тель-Авив
от 350 000 ₽