Skip to main content

SITIST

Как обрезать текст многоточием

Если у вас есть длинный текст, но поместить его нужно в одну строку и красиво обрезать многоточием, то проблем нет. Для этого есть специальное свойство text-overflow: ellipsis

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


.text-box {
    overflow: hidden;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
}

Свойство -webkit-line-clamp оставит только указанное число строк добавив многоточие в конец последней строки, а остальные строки обрежет.

Для других браузеров придется задавать высоту блока исходя из размера шрифта и междустрочного интервала и скрывать обычным overflow. Либо добавлять псевдоэлемент ::after, у которого будет многоточие в свойстве content и фон равный цвету фона, чтобы перекрыть часть текста. Конечно, такой вариант подойдет только для однотонного фона.

И, конечно, всегда в запасе есть вариант с использованием JS, при котором просто рассчитывается количество помещающихся в блок букв. Но я предпочитаю варианты на CSS, когда это позволяет техническое задание и перечень необходимых браузеров в нем.

Вверх