Text-overflow не работает при использовании display:flex

.flex-container {
  display: flex;
  text-overflow: ellipsis;
  overflow: hidden;
  text-align: left;
}
<h1>Flexible Boxes</h1>
<div class = "flex-container" style = "height: 12%; width:14%">
  ThisIsASampleText
</div>
Output: ThisIsASamp  
Expected: ThisIsASam...

Когда я удаляю свойство flex, оно работает нормально.

Я хотел бы знать, почему flex влияет на многоточие.

ТИА

Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Введение в CSS
Введение в CSS
CSS является неотъемлемой частью трех основных составляющих front-end веб-разработки.
Как выровнять Div по центру?
Как выровнять Div по центру?
Чтобы выровнять элемент <div>по горизонтали и вертикали с помощью CSS, можно использовать комбинацию свойств и значений CSS. Вот несколько методов,...
Навигация по приложениям React: Исчерпывающее руководство по React Router
Навигация по приложениям React: Исчерпывающее руководство по React Router
React Router стала незаменимой библиотекой для создания одностраничных приложений с навигацией в React. В этой статье блога мы подробно рассмотрим...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
Toor - Ангулярный шаблон для бронирования путешествий
Toor - Ангулярный шаблон для бронирования путешествий
Toor - Travel Booking Angular Template один из лучших Travel & Tour booking template in the world. 30+ валидированных HTML5 страниц, которые помогут...
7
0
1 814
5
Перейти к ответу Данный вопрос помечен как решенный

Ответы 5

Ответ принят как подходящий

Ваша проблема здесь в отсутствии «гибких детей». Они должны содержать стили для усечения элемента, а не родительского контейнера.

Попробуйте переместить свойства усечения в отдельный класс .flex-child следующим образом:

.flex-child {
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

Источник и подробное объяснение: https://css-tricks.com/flexbox-truncated-text/

Вы можете сделать что-то вроде этого

.flex-container {
  display: flex;
}

.flex-container p {
  text-overflow: ellipsis;
  overflow: hidden;
  white-space: nowrap;
}
<h1>Flexible Boxes</h1>
<div class = "flex-container" style = "height: 12%; width:14%">
<p>
  ThisIsASampleText </p>
</div>

.flex-container {
  display: flex;
  text-align: left;
}

.text-container {
   min-width: 0;
   text-overflow: ellipsis;
   overflow: hidden;
}
<h1>Flexible Boxes</h1>
<div class = "flex-container" style = "height: 12%; width:14%">
    <div class = "text-container">ThisIsASampleText</div>
</div>

https://web.archive.org/web/20170801095151/https://brainlessdeveloper.com/2017/07/29/why-wont-my-text-overflow/

В вашей конфигурации у вас есть гибкий элемент анонимного блочного контейнера, который содержит ваш текст (для этого вы можете обратиться к спецификация). Гибкий элемент будет подчиняться ограничению min-width, поэтому он не будет сжиматься, а будет переполняться, и, поскольку это анонимный блок, у вас нет возможности применить к нему min-width.

В дополнение к этому свойства переполнения должны применяться к гибкому элементу, а не к гибкому контейнеру, поскольку он содержит текст, а свойство переполнения не наследуются. Другими словами, при использовании flexbox у вас будет два уровня: flex-контейнер и flex-элементы. Вам нужно применить все к гибкому элементу.

Предположим, мы добавим span вокруг нашего текста, у нас будет это:

.flex-container {
  display: flex;
  text-overflow: ellipsis;
  overflow: hidden;
  text-align: left;
}
<h1>Flexible Boxes</h1>
<div class = "flex-container" style = "height: 12%; width:14%">
  <span>ThisIsASampleText</span>
</div>

Теперь мы можем нацелить элемент flex, чтобы добавить min-width:0 и необходимые свойства, чтобы получить ожидаемый результат:

.flex-container {
  display: flex;
  text-align: left;
}

span {
  min-width:0;
  text-overflow: ellipsis;
  overflow: hidden;
}
<h1>Flexible Boxes</h1>
<div class = "flex-container" style = "height: 12%; width:14%">
  <span>ThisIsASampleText</span>
</div>

Без дополнительной оболочки мы не можем нацелить наш гибкий элемент, и применение свойств к гибкому контейнеру ничего не даст.

добавить свойство ниже в класс css

white-space: nowrap;
word-break: break-word;

Другие вопросы по теме