line-clamp | CSS | WebReference
Ограничивает текст заданным числом строк. Если текст превышает указанное число строк, то текст обрезается и в конце добавляется многоточие.
Краткая информация
Значение по умолчанию | none |
---|---|
Наследуется | Нет |
Применяется | Ко всем элементам |
Анимируется | Нет |
Синтаксис
line-clamp: none | <число>Синтаксис
Описание | Пример | |
---|---|---|
<тип> | Указывает тип значения. | <размер> |
A && B | Значения должны выводиться в указанном порядке. | <размер> && <цвет> |
A | B | Указывает, что надо выбрать только одно значение из предложенных (A или B). | normal | small-caps |
A || B | Каждое значение может использоваться самостоятельно или совместно с другими в произвольном порядке. | width || count |
[ ] | Группирует значения. | [ crop || cross ] |
* | Повторять ноль или больше раз. | [,<время>]* |
+ | Повторять один или больше раз. | <число>+ |
? | Указанный тип, слово или группа не является обязательным. | inset? |
{A, B} | Повторять не менее A, но не более B раз. | <радиус>{1,4} |
# | Повторять один или больше раз через запятую. | <время># |
Значения
- none
- Содержимое никак не ограничивается.
- <число>
- Содержимое ограничивается указанным числом строк.
Пример
<!DOCTYPE html> <html> <head> <meta charset=»utf-8″> <title>line-clamp</title> <style> . truncate { background: #f4eddf; /* Цвет фона */ padding: 10px; /* Поля вокруг текста */ } .truncate p { margin: 0; /* Убираем внешний отступ */ -webkit-line-clamp: 2; /* Число отображаемых строк */ display: -webkit-box; /* Включаем флексбоксы */ -webkit-box-orient: vertical; /* Вертикальная ориентация */ overflow: hidden; /* Обрезаем всё за пределами блока */ } </style> </head> <body> <div><p>На улицах и пустырях мальчики запускают воздушных змеев, а девочки играют деревянными ракетками с многоцветными рисунками в ханэ. Кроме этого, здесь есть ценнейшие коллекции мексиканских масок, бронзовые и каменные статуи из Индии и Цейлона, бронзовые барельефы и изваяния, созданные мастерами Экваториальной Африки пять-шесть веков назад.</p></div> </body> </html>Объектная модель
Объект.style.lineClamp
Примечание
Спецификация
Спецификация | Статус |
---|---|
CSS Overflow Module Level 3 | Рабочий проект |
Каждая спецификация проходит несколько стадий одобрения.
- Recommendation (Рекомендация) — спецификация одобрена W3C и рекомендована как стандарт.
- Candidate Recommendation (Возможная рекомендация) — группа, отвечающая за стандарт, удовлетворена, как он соответствует своим целям, но требуется помощь сообщества разработчиков по реализации стандарта.
- Proposed Recommendation (Предлагаемая рекомендация) — на этом этапе документ представлен на рассмотрение Консультативного совета W3C для окончательного утверждения.
- Working Draft (Рабочий проект) — более зрелая версия черновика после обсуждения и внесения поправок для рассмотрения сообществом.
- Editor’s draft (Редакторский черновик) — черновая версия стандарта после внесения правок редакторами проекта.
- Draft (Черновик спецификации) — первая черновая версия стандарта.
Браузеры
17 | 14 | 15 | 68 |
2.3 | 68 | 46 | 5 |
В таблице браузеров применяются следующие обозначения.
- — элемент полностью поддерживается браузером;
- — элемент браузером не воспринимается и игнорируется;
- — при работе возможно появление различных ошибок, либо элемент поддерживается с оговорками.
Число указывает версию браузреа, начиная с которой элемент поддерживается.
Текст и шрифт
Рецепты
- Как обрезать текст и добавить в конце многоточие?
Справочник CSS
Значения свойств
Функции
Единицы CSS
Типы элементов
@-правилаАнимацияГраницыКонтентЛогическиеОтступы и поляПечатьПозиционированиеПсевдоклассыПсевдоэлементыРазмерыСпискиТаблицыТекст и шрифтФлексыФорматированиеФормыЦвет и фонCSS: line-clamp — Еще один блог веб-разработчика
Spread the love
Свойство line-clamp
обрезает текст до определенного количества строк.
Спецификация для него в настоящее время находится в статусе Working Draft (WD) — рабочий черновик, так что это означает, что все еще здесь ничего не высечено на камне, потому что работа над ней до конца еще не завершена. Тем не менее, он определяется как сокращение для max-lines
и block-overflow
, первое из которых отмечено как находящееся под угрозой удаления в текущем рекомендации-кандидате (Candidate Recommendation).
Легко увидеть, как max-lines
будет исключен, поскольку его функция (установка количества строк перед усечением) уже встроена в line-clamp, и дальнейшая абстракция может быть ненужной.
Syntax
.module { line-clamp: [none | <integer>]; }
line-clamp
принимает следующие значения в текущем черновике спецификации:
none
: не устанавливает максимальное количество строк, и в результате не происходит усечения.<integer>
: устанавливает максимальное количество строк перед усечением содержимого, а затем отображает многоточие (…) в конце последней строки.
Это многоточие должно отображаться как символ Юникода (U+2026), но его можно заменить эквивалентом в зависимости от языка содержимого и режима записи используемого User-Agent.
Эй, я могу сделать это с помощью text-overflow?
Справедливый вопрос, друг мой, и ответ такой: ну…
text-overflow
действительно имеет значение ellipsis
, которое обрезает текст:
.truncate { text-overflow: ellipsis; /* Needed to make it work */ overflow: hidden; white-space: nowrap; }
Красивая картинка, для хорошего старта. Но что, если мы хотим ввести многоточие не в первую строку, а где-то, скажем, в третью строку текста?
Вот где в игру вступает line-clamp
. Просто обратите внимание, что для этого используется комбинация трех свойств:
.line-clamp { display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }
Firefox теперь поддерживает это именно таким образом (с префиксами -webkit- и всем остальным).
Итак, в чем подвох?
На данный момент это поддержка браузера. Line clamps являются частью CSS Overflow Module Level 3 , который в настоящее время находится в статусе Working Draft (WD) — рабочий черновик и в настоящее время может полностью не поддерживается в некоторых браузерах.
Мы можем получить этот эффект (line clamp) с помощью префикса -webkit- (который, как ни странно, работает во всех основных браузерах). Поэтому, именно так была сделана демонстрация выше.
Так же для этих целей можно пойти по пути JavaScript. Clamp.js старая но вполне рабочая библиотека:
Поддержка браузера
Это поддержка WebKit свойства и недокументированной реализации Line Clamp в WebKit.
Эти данные поддержки браузера получены от Caniuse, в котором есть более подробная информация. Число указывает, что браузер поддерживает эту функцию в этой версии и выше.
Desktop
Chrome | Firefox | IE | Edge | Safari |
---|---|---|---|---|
14* | 68* | No | 17 | 5* |
Mobile / Tablet
Android Chrome | Android Firefox | Android | iOS Safari |
---|---|---|---|
108* | 107* | 2.3* | 5.0-5.1* |
Дополнительные ресурсы
- CSS Overflow Module Level 3 – Спецификация
- Safari CSS Reference – Документация для неподдерживаемой реализации WebKit
- Line Clampin’ (Truncating Multiple Line Text) – Крис Койер
- Clamp. js – метод JavaScript для кросс-браузерной поддержки
- Pitfalls of Card UIs – Дэйв Руперт об опасностях усечения текста
Перевод статьи: line-clamp
Была ли вам полезна эта статья?
[2 / 5]Spread the love
свойство -moz-box-flex | -webkit-box-flex свойство CSS (каскадные таблицы стилей)
Вы находитесь здесь: Справочник > CSS > свойства > расширения браузера > -moz-box-flex
Поддержка браузера:-moz-box-flex : | |
-вебкит-бокс-флекс : |
Определяет, как элемент увеличивается, чтобы заполнить содержащее его поле, по сравнению с его одноуровневыми элементами.
Страница JavaScript для этого свойства: MozBoxFlex | вебкитбоксфлекс. Вы можете найти другие примеры там. |
Возможные значения:
Одно из следующих значений:гибкость (неотрицательное целое число) | Целое число, приоритет гибкости по другим элементам. | |
унаследовать | Берет значение этого свойства из вычисленного стиля родительского элемента. |
По умолчанию: 0 .
Пример кода HTML 1:
Этот пример иллюстрирует использование свойств -moz-box-flex и -webkit-box-flex :
<голова> <стиль> .коробка { отображение: -moz-inline-box; отображение: -webkit-inline-box; ширина: 250 пикселей; граница: 5 пикселей сплошного красного цвета; } .flex1 { -moz-box-flex: 1; -вебкит-бокс-флекс: 1; фон: зеленый; } .flex2 { -moz-box-flex: 2; -вебкит-бокс-флекс: 2; фон: голубой; } .flex3 { -moz-box-flex: 3; -вебкит-бокс-флекс: 3; фон: оранжевый; } стиль> |
Этот пример был вам полезен? да нет |
Поддерживается тегами:
a, abbr, acronym, address, b, bdo, big, blink, blockQuote, body, caption, center, cite, code, dd, del, dfn, dir, div, dl, dt , em, fieldSet, font, form, h2, h3, h4, h5, H5, H6, hr, html, i, iframe, ins, isIndex, kbd, label, legend, li, marquee, menu, ol, p, pre , s, samp, small, span, strike, strong, sub, sup, table, td, textArea, th, tr, tt, u, ul, var, q, xmp
Связанные страницы:
-moz-box-align
-moz-box-direction
-moz-box-ordinal-group
-moz-box-orient
-moz-box-pack
-moz-box-sizing
Внешние ссылки:
-moz-box-flex (Центр разработчиков Mozilla)
-webkit-box-flex (справочная библиотека Safari)
Пользовательские комментарии
css box-flex — Справочник CodeProject
См. Flexbox для получения дополнительной информации о том, что следует использовать вместо этого свойства.
Пример
HTML
Копировать код
<голова>-moz-box-flex пример <стиль> div.example { дисплей: -moz-box; дисплей: -webkit-box; граница: 1px сплошной черный; ширина: 100%; } div.example > p:nth-child(1) { -moz-box-flex: 1; /* Мозилла */ -вебкит-бокс-флекс: 1; /* Веб-кит */ граница: 1px сплошной черный; } div.example > p:nth-child(2) { -moz-box-flex: 0; /* Мозилла */ -вебкит-бокс-флекс: 0; /* Веб-кит */ граница: 1px сплошной черный; } стиль> голова> <тело> <дел>Я расширюсь, чтобы заполнить дополнительное пространство
Я не буду расширяться
Синтаксис
CSS
Код копирования
/* <число> значений */ -moz-box-flex: 0; -moz-box-flex: 2; -moz-box-flex: 3,5; -вебкит-бокс-флекс: 0; -вебкит-бокс-флекс: 2; -webkit-box-flex: 3. 5; /* Глобальные значения */ -moz-box-flex: наследовать; -moz-box-flex: начальный; -moz-box-flex: не установлено; -webkit-box-flex: наследовать; -webkit-box-flex: начальный; -webkit-box-flex: не установлено;
Значения
- <номер>
- Если значение равно 0, поле не увеличивается. Если он больше 0, поле увеличивается, чтобы заполнить часть доступного пространства.
Формальный синтаксис
CSS
Код копирования
Описание
Свойства CSS -moz-box-flex
и -webkit-box-flex
указывают, как0157 -moz-box или -webkit-box
увеличивается, чтобы заполнить блок, который его содержит, в направлении макета содержащего блока. См. Flexbox для получения дополнительной информации о свойствах элементов flexbox.
Исходное значение | 0 |
---|---|
Применяется к элементам | , которые являются прямыми дочерними элементами элемента с отображаемым в CSS значением 9015 7 -moz-box или -moz-inline-box или -webkit-box или -webkit-inline-box |
Унаследованный | нет |
Медиа | визуальный |
как указано | |
Анимируемое | нет |
Канонический порядок | уникальный однозначный порядок, определенный формальной грамматикой |
Совместимость с браузером
- Настольный
- Мобильный
Особенность | Хром | Firefox (Геккон) | Internet Explorer | Опера | Сафари |
---|---|---|---|---|---|
Базовая опора | (Да)-веб-кит | (Да)-mox [1] | Нет поддержки | (Да)-веб-кит | 1. 1-хтмл 3.0-веб-кит |
Характеристика | Андроид | Chrome для Android | Firefox Mobile (Геккон) | Мобильный IE | Опера Мобайл | Мобильный сафари |
---|---|---|---|---|---|---|
Базовая опора | ? | ? | ? | Нет поддержки | ? | 1.0-веб-кит |
[1] В дополнение к поддержке префикса -moz
в Gecko 48.0 (Firefox 48.0 / Thunderbird 48.0 / SeaMonkey 2.45) добавлена поддержка -webkit
версия свойства с префиксом по причинам веб-совместимости за предпочтением layout.css.prefixes.webkit
, по умолчанию false
. Начиная с Gecko 49.0 (Firefox 49.0 / Thunderbird 49.0 / SeaMonkey 2.46) предпочтение по умолчанию равно true
.
Примечания
Содержащий блок выделяет доступное дополнительное пространство пропорционально значению гибкости каждого из элементов содержимого.
Элементы содержимого с нулевой гибкостью не увеличиваются.
Если только один элемент содержимого имеет ненулевое значение гибкости, то он увеличивается, чтобы заполнить доступное пространство.
Элементы контента с одинаковой гибкостью увеличиваются на одинаковые абсолютные величины.
Если значение flex установлено с использованием атрибута flex
элемента, то стиль игнорируется.
Чтобы элементы XUL в содержащем блоке были одинакового размера, задайте для атрибута equalsize
содержащего блока значение всегда
. У этого атрибута нет соответствующего свойства CSS.
Уловка, позволяющая сделать все элементы содержимого в содержащем блоке одинакового размера, состоит в том, чтобы присвоить им всем фиксированный размер (например, height: 0
) и одно и то же значение box-flex больше нуля (например, -moz-box -flex: 1
).
См. также
ориентация коробки
, ориентация коробки
, ориентация коробки
, гибкая
Технические характеристики
Это свойство является нестандартным расширением.