Перенести текст на следующую строку, если больше нет места

#html #css

#HTML #css

Вопрос:

У меня появляется эта всплывающая подсказка при наведении курсора мыши на значок информации рядом с заголовком. Я не могу заставить его перенести текст на следующую строку, если недостаточно места для отображения всего этого. Я перепробовал так много разных версий пробелов и переноса строк, что у меня закончились идеи.

Кроме того, IE вообще не отображает всю ширину. Я не хочу придавать моему div фиксированную ширину. Я хочу, чтобы он динамически переносился, когда в родительском файле больше нет места.

Мой желаемый результат был бы примерно таким как в IE, так и в Chrome введите описание изображения здесь

 .info-tooltip {
  position: relative;
  display: inline;
  top: 1px;
  cursor: defau<
  white-space: pre;
}

.info-tooltip:before {
  content: url("https://image.flaticon.com/icons/svg/685/685815.svg");
  width: 20px;
  height: 20px;
  display: inline-block;
}

/* Tooltip text */
.info-tooltip .info-tooltip-text {
  visibility: hidden;
  background-color: #0BC6DD;
  color: #fff;
  border-radius: 4px;
  font-size: 14px;

  /* Position the tooltip text */
  position: absolute;
  top: 37px;
  left: -50px;
  display: table;
  z-index: 1;
  padding: 8px 8px 4px 8px ;

  /* Fade in tooltip */
  opacity: 0;
  transition: opacity 0.3s;
  -webkit-transition: opacity 0.3s;
  -moz-transition: opacity 0.3s;
  -ms-transition: opacity 0.3s;
  -o-transition: opacity 0.3s;
  transition: opacity 0.3s;
}

/* Tooltip arrow */
.info-tooltip .info-tooltip-text::after {
  content: "";
  position: absolute;
  bottom: 100%;
  left: 60px;
  margin-left: -5px;
  border-width: 5px;
  border-style: solid;
  border-color: transparent transparent #0BC6DD transparent;
}

/* Show the tooltip text when you mouse over the tooltip container */
.info-tooltip:hover .info-tooltip-text {
  visibility: visible;
  opacity: 1;
}

.info-tooltip .info-tooltip-text p {
  padding-bottom: 4px;
  margin: 0;
  font-weight: 100;
}  
 <h1>There is a tooltip next to me <i class="info-tooltip"/>
  <div class="info-tooltip-text">
    <p>This is the actual tooltip to be displayed. A bit longer than expected. Should wrap where necessary.</p>
  </div>
</i></h1>  

Ответ №1:

добавлено

 width: 250px;
white-space: normal;
  

Для .info-tooltip .info-tooltip-text p

 .info-tooltip {
  position: relative;
  display: inline;
  top: 1px;
  cursor: defau<
  white-space: pre;
}

.info-tooltip:before {
  content: url("https://image.flaticon.com/icons/svg/685/685815.svg");
  width: 20px;
  height: 20px;
  display: inline-block;
}


/* Tooltip text */

.info-tooltip .info-tooltip-text {
  visibility: hidden;
  background-color: #0BC6DD;
  color: #fff;
  border-radius: 4px;
  font-size: 14px;
  /* Position the tooltip text */
  position: absolute;
  top: 37px;
  left: -50px;
  display: table;
  z-index: 1;
  padding: 8px 8px 4px 8px;
  /* Fade in tooltip */
  opacity: 0;
  transition: opacity 0.3s;
  -webkit-transition: opacity 0.3s;
  -moz-transition: opacity 0.3s;
  -ms-transition: opacity 0.3s;
  -o-transition: opacity 0.3s;
  transition: opacity 0.3s;
}


/* Tooltip arrow */

.info-tooltip .info-tooltip-text::after {
  content: "";
  position: absolute;
  bottom: 100%;
  left: 60px;
  margin-left: -5px;
  border-width: 5px;
  border-style: solid;
  border-color: transparent transparent #0BC6DD transparent;
}


/* Show the tooltip text when you mouse over the tooltip container */

.info-tooltip:hover .info-tooltip-text {
  visibility: visible;
  opacity: 1;
}

.info-tooltip .info-tooltip-text p {
  padding-bottom: 4px;
  margin: 0;
  font-weight: 100;
  width: 250px;
  white-space: normal;
}  
 <h1>There is a tooltip next to me <i class="info-tooltip" />
  <div class="info-tooltip-text">
    <p>This is the actual tooltip to be displayed. A bit longer than expected. Should wrap where necessary.</p>
  </div>
  </i>
</h1>  

Комментарии:

1. Я хочу, чтобы div красиво расширялся, если экран достаточно большой, чтобы отобразить все сообщение. Я не хочу, чтобы это было исправлено на 250 пикселей.