Мы рассмотрим здесь как обрезать текст и добавить многоточие средствами CSS. Это еще одна классическая проблема фронт-енда, как не позволить тексту менять геометрию контейнера, если он не влазит целиком.
CSS предоставляет специальное свойство для управления ситуацией с переполнением текста — text-overflow. Согласно спецификации, он может принимать разные значения, в том числе и:
1 |
text-overflow: ellipsis; |
Чтобы это заработало, и появилось многоточие, контейнер не должен позволять тексту переносится на следующую строку. А также требуется установить свойство overflow.
1 2 3 |
overflow: hidden; white-space: nowrap; // или height: 1em; |
На практике это сильно ограничивает область применения, т.к. получается что работает это только с одной строкой.
Многострочный вариант text-overflow
Здесь нам поможет CSS свойство line-champ, которое сейчас поддерживается всеми новыми браузерами:
1 2 3 4 5 6 7 8 |
// базовые стили overflow: hidden; text-overflow: ellipsis; // многострочный хак display: -webkit-box; -webkit-line-clamp: 2; // число строк -webkit-box-orient: vertical; |
Только это реально помогло для многострочного варианта. Большое спасибо