CSS-свойство `line-clamp`
Базовая поддержка Ограниченная доступность
Эта функция не относится к базовым, поскольку не работает в некоторых из наиболее широко используемых браузеров.
Свойство line-clamp CSS позволяет ограничить содержимое блочного элемента указанным количеством строк. Кроме того, оно позволяет добавить содержимое в последнюю строку, чтобы обозначить усечение текста.
Синтаксис
/* Keyword value */ line-clamp: none; /* <integer> value only */ line-clamp: 3; line-clamp: 10; /* <integer> and <'block-ellipsis'> values */ line-clamp: 3 no-ellipsis; line-clamp: 10 "… (there is extra content)"; /* <'block-ellipsis'> value only */ line-clamp: no-ellipsis; line-clamp: "… (there is extra content)"; /* Global values */ line-clamp: inherit; line-clamp: initial; line-clamp: revert; line-clamp: revert-layer; line-clamp: unset;
Значения
Это свойство задаётся одним или двумя значениями из следующего списка, разделёнными пробелом:
-
none - Указывает, что содержимое не обрезается. Это ключевое слово нельзя комбинировать с другими значениями. Используется по умолчанию.
-
<integer>Необязательно - Указывает количество строк, после которого содержимое обрезается. Значение должно быть больше 0.
-
<’block-ellipsis’>Необязательно - Указывает содержимое, добавляемое в последнюю строку. Возможны следующие значения:
-
no-ellipsis: многоточие (символ U+2026) не добавляется, если текст усечён из-за указанного количества строк. -
auto: если текст усечён, отображается символ многоточия (U+2026). -
<string>: указанная строка отображается в конце соответствующей строки. Если строка очень длинная, браузеры могут её обрезать. Пустая строка ведёт себя так же, как значениеno-ellipsis.
-
Примечание: Если <’block-ellipsis’> задано без <integer>, оно применяется только в том случае, когда содержимое обрезается по высоте контейнера.
Описание
В большинстве случаев следует также задать для overflow значение hidden, иначе содержимое не будет обрезано, но после указанного количества строк всё равно появится многоточие.
При применении к элементам-якорям усечение может произойти в середине текста, а не обязательно в его конце.
Примечание: Для поддержки устаревших браузеров свойство с префиксом поставщика -webkit-line-clamp работает только в сочетании со свойством display, которому задано значение -webkit-box или -webkit-inline-box, и свойством -webkit-box-orient, которому задано значение vertical. Несмотря на то, что эти свойства с префиксами признаны устаревшими, зависимость между тремя свойствами полностью описана в спецификации и продолжит поддерживаться.
Формальное определение
| Исходное значение | none |
|---|---|
| Применяется к | Блочным контейнерам, кроме многоколоночных контейнеров |
| Наследуется | нет |
| Вычисленное значение | как задано |
| Тип анимации | целое число <a href="/en-US/docs/Web/CSS/Reference/Values/integer#interpolation" title="Значения типа данных CSS <integer> интерполируются дискретными целочисленными шагами. Вычисление выполняется так, как если бы они были вещественными числами с плавающей запятой, а дискретное значение получается с помощью функции floor.">integer</a> |
Формальный синтаксис
line-clamp = none | <integer> <integer> = <number-token>
Примеры
Усечение содержимого с многоточием или пользовательской строкой
В этом примере показаны три карточки, каждая с отдельным значением line-clamp:
- Для первой задано только
<integer>, ограничивающее количество строк. - Для второй заданы
<integer>и значениеno-ellipsis. - Для третьей заданы
<integer>и пользовательское<string>.
HTML
<section>
<div class="card">
<h2>number of lines</h2>
<p class="integer">
In this card, the <em>number of lines</em> is specified by an
<code><integer></code>. Any content that does not fit is truncated
and an ellipsis is shown.
</p>
</div>
<div class="card">
<h2>no ellipsis</h2>
<p class="no-ellipsis">
In this card, an <code><integer></code> and a
<em>no-ellipsis</em> value are specified. Any content that does not fit is
truncated and no ellipsis is shown.
</p>
</div>
<div class="card">
<h2>custom string</h2>
<p class="string">
In this card, an <code><integer></code> and a <em>string</em> value
are specified. Any content that does not fit is truncated and the custom
string is shown instead of an ellipsis.
</p>
</div>
</section>
CSS
/* layout for the cards */
section {
display: grid;
grid-template-columns: 1fr 1fr 1fr;
gap: 0.5rem;
justify-content: space-between;
}
em {
color: tomato;
}
.card {
padding: 0.2rem;
border: 1px solid tomato;
border-radius: 0.2rem;
max-width: 250px;
}
.integer {
line-clamp: 2;
overflow: hidden;
}
.no-ellipsis {
line-clamp: 2 no-ellipsis;
overflow: hidden;
}
.string {
line-clamp: 2 "… (my custom text)";
overflow: hidden;
}
Результат
Усечение абзаца с помощью устаревшего свойства
В этом примере используется устаревшее свойство -webkit-line-clamp, для которого display задано значение -webkit-box.
Примечание: При использовании устаревшего свойства -webkit-line-clamp следует также задать для overflow значение hidden, иначе содержимое не будет обрезано, хотя после указанного количества строк всё равно появится многоточие.
HTML
<p> In this example the <code>-webkit-line-clamp</code> property is set to <code>3</code>, which means the text is clamped after three lines. An ellipsis will be shown at the point where the text is clamped. </p>
CSS
p {
width: 300px;
display: -webkit-box;
-webkit-box-orient: vertical;
-webkit-line-clamp: 3;
overflow: hidden;
}
Результат
Спецификации
| Спецификация |
|---|
| Модуль CSS Overflow, уровень 4 # propdef-line-clamp |
Совместимость с браузерами
| Компьютеры | Мобильные устройства | |||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Opera | Safari | Chrome Android | Firefox для Android | Opera Android | Safari на iOS | Samsung Internet | WebView Android | WebView на iOS | |
line-clamp |
6
предварительная версия
|
79 |
68
предварительная версия
|
15 |
предварительная версия
5
18.2–18.4Случайно стало доступно. |
18 |
68 |
14 |
4.2
18.2–18.4Случайно стало доступно. |
1.0 |
4.4 |
4.2
18.2–18.4Случайно стало доступно. |
auto |
предварительная версия |
Нет |
предварительная версия |
Нет |
предварительная версия |
Нет |
Нет |
Нет |
Нет |
Нет |
Нет |
Нет |
height-based_clamping |
предварительная версия |
Нет |
Нет |
Нет |
Нет |
Нет |
Нет |
Нет |
Нет |
Нет |
Нет |
Нет |
no-ellipsis |
предварительная версия |
Нет |
Нет |
Нет |
предварительная версия |
Нет |
Нет |
Нет |
Нет |
Нет |
Нет |
Нет |
none |
предварительная версия |
Нет |
68 |
Нет |
предварительная версия |
Нет |
68 |
Нет |
Нет |
Нет |
Нет |
Нет |
string |
Нет |
Нет |
Нет |
Нет |
предварительная версия |
Нет |
Нет |
Нет |
Нет |
Нет |
Нет |
Нет |
См. также
© 2005–2025 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/CSS/Reference/Properties/line-clamp