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

Примечание

Браузеры поддерживают свойство -webkit-line-clamp.

Спецификация

СпецификацияСтатус
CSS Overflow Module Level 3Рабочий проект
Спецификация

Каждая спецификация проходит несколько стадий одобрения.

  • Recommendation (Рекомендация) — спецификация одобрена W3C и рекомендована как стандарт.
  • Candidate Recommendation (Возможная рекомендация) — группа, отвечающая за стандарт, удовлетворена, как он соответствует своим целям, но требуется помощь сообщества разработчиков по реализации стандарта.
  • Proposed Recommendation (Предлагаемая рекомендация) — на этом этапе документ представлен на рассмотрение Консультативного совета W3C для окончательного утверждения.
  • Working Draft (Рабочий проект) — более зрелая версия черновика после обсуждения и внесения поправок для рассмотрения сообществом.
  • Editor’s draft (Редакторский черновик) — черновая версия стандарта после внесения правок редакторами проекта.
  • Draft (Черновик спецификации) — первая черновая версия стандарта.

Браузеры

171415
5
68
2.368465
Браузеры

В таблице браузеров применяются следующие обозначения.

  • — элемент полностью поддерживается браузером;
  • — элемент браузером не воспринимается и игнорируется;
  • — при работе возможно появление различных ошибок, либо элемент поддерживается с оговорками.

Число указывает версию браузреа, начиная с которой элемент поддерживается.

Текст и шрифт

Рецепты

  • Как обрезать текст и добавить в конце многоточие?

Справочник 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
ChromeFirefoxIEEdgeSafari
14*68*No175*
Mobile / Tablet
Android ChromeAndroid FirefoxAndroidiOS 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;
            фон: оранжевый;
        }
    
<тело> <дел>
флекс 1
флекс 2
флекс 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.

901 69 Вычисленное значение
Исходное значение 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 ).

См. также  

ориентация коробки , ориентация коробки , ориентация коробки , гибкая

Технические характеристики  

Это свойство является нестандартным расширением.