переполнение текста: многоточие не работает

264

Вот что я попробовал (см. Здесь ):

body {
    overflow: hidden;
}

span {
    border: solid 2px blue;
    white-space: nowrap;
    text-overflow: ellipsis;
}

По сути, я хочу, чтобы интервал уменьшался с помощью многоточия, когда окно сделано маленьким. Что я сделал не так?

Randomblue
источник
6
требования к многоточию для работы: stackoverflow.com/a/33061059/3597276
Майкл Бенджамин
Проблема, которая возникла у меня, когда я подумал, что она не работает, заключается в том, что я недостаточно долго установил ширину (10 пикселей). Итак, я отрезал многоточие, дох!
Род

Ответы:

459

Вы должны иметь CSS overflow, width(или max-width) display, и white-space.

http://jsfiddle.net/HerrSerker/kaJ3L/1/

span {
    border: solid 2px blue;
    white-space: nowrap;
    text-overflow: ellipsis;
    width: 100px;
    display: block;
    overflow: hidden
}

Приложение Если вы хотите получить обзор методов зажима строк (многострочные эллипсы переполнения), посмотрите эту страницу CSS-хитрости: https://css-tricks.com/line-clampin/

Приложение 2 (май 2019)
Как утверждает эта ссылка , Firefox 68 будет поддерживать -webkit-line-clamp(!)

yunzen
источник
12
Свойство пробела было тем, чего мне не хватало. Спасибо.
nebulousGirl
65
Это отстой, что вам нужна white-space: nowrap;собственность. Теперь вы можете закончить только одну строку текста ... вместо текста блока.
Свен ван Зелен
3
Сегодня все основные браузеры поддерживают многоточие: caniuse.com/#feat=text-overflow
казы
1
@basZero Multiline Ellipsis не поддерживается только с помощью CSS. Вы должны принять другие меры
июня
1
Вам нужно указать ширину, чтобы контейнер был связан, вам нужно установить переполнение: скрытый, чтобы браузер скрывал текст при переполнении, а затем установить переполнение текста: ellipsis, чтобы указать браузеру, как особенно нужно обрабатывать скрытие переполнения текста.
Майкл Ангштадт
46

Убедитесь, что у вас есть элемент блока, максимальный размер и установите переполнение скрытым. (Проверено в IE9 и FF 7)

http://jsfiddle.net/uh9zD/

div {
    border: solid 2px blue;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    width: 50px;
}
ZippyV
источник
5
Похоже, это свойство white-space: nowrap может быть вообще необходимо для всего, что имеет пробелы.
Kzqai
Точная копия комментария выше.
nebulousGirl
@nebulousGirl: на самом деле комментарий Кзкая был раньше, чем тот, что был опубликован в комментариях HerrSerker.
Лепе
В IE есть странность - IE не переносит второе слово (проверено в IE 11) ... Пойди разберись. Работает в любом другом браузере, как и ожидалось (включая старый добрый Opera 12).
Nux
1
@Nux Это также не работает
должным образом в
21

Для многострочных в Chrome используйте:

display: inline-block;
overflow: hidden;
text-overflow: ellipsis;
display: -webkit-box;
-webkit-line-clamp: 2; // max nb lines to show
-webkit-box-orient: vertical;

Вдохновленный от YouTube ;-)

Arraxas
источник
Это очень интересное решение. Он использует -webkit-*свойства, но поддерживается во всех основных браузерах. Более подробную информацию можно найти здесь: css-tricks.com/almanac/properties/l/line-clamp
dkniffin
5

У меня была проблема с многоточием под хромом. Включение пустого пространства: теперь казалось, что это исправит.

max-width: 95px;
max-height: 20px;
overflow: hidden;
display: inline-block;
text-overflow: ellipsis;
border: solid 1px black;
font-size: 12pt;
text-align: right;
white-space: nowrap;
Joel
источник
4
word-wrap: break-word;

это и только это сделало работу для меня

<pre> </pre> 

тег

многим не удалось сделать многоточие ....

aimiliano
источник
3

Просто хедсэп для любого, кто может наткнуться на это ... Мой h2 унаследовал

text-rendering: optimizelegibility; 
//Changed to text-rendering: none; for fix

который не позволял многоточию. Видимо это очень изящно, а?

Бен расикот
источник
2

Добавьте этот код ниже, где вам нравится

пример

p{
   display: block; /* Fallback for non-webkit */
   display: -webkit-box;
   max-width: 400px;
   margin: 0 auto;
   -webkit-line-clamp: 2;
   -webkit-box-orient: vertical;
   overflow: hidden;
   text-overflow: ellipsis;
 }
Sathish
источник
2

Для нескольких строк

В Chrome вы можете применить этот CSS, если вам нужно применить многоточие на нескольких строках.

Вы также можете добавить ширину в свой CSS, чтобы указать элемент определенной ширины:

.multi-line-ellipsis {
    overflow: hidden;
    display: -webkit-box;
    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical;
}
<p class="multi-line-ellipsis">Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.</p>

Раман Сахаси
источник
1

Вы можете попробовать использовать многоточие, добавив следующее в CSS:

.truncate {
  width: 250px;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

Но похоже, что этот код относится только к однострочному усечению. Другие способы обрезки текста и отображения многоточия можно найти на этом сайте: http://blog.sanuker.com/?p=631.

Рой
источник
0

Добавьте следующие строки в CSS для работы с многоточием

 p {
     display: block; // change it as per your requirement
     overflow: hidden;
     text-overflow: ellipsis;
     white-space: nowrap;
   }
Маной Сельвин
источник
0

Для тех из нас, кто не хочет использовать фиксированную ширину , он также работает с использованием display: inline-grid. Таким образом, наряду с необходимыми свойствами вы просто добавляетеdisplay

span {
    overflow: hidden;
    white-space: nowrap;
    text-overflow: ellipsis;
    display: inline-grid;
}
shazyriver
источник