Как скрыть лишний текст в блоке
Имеем несколько колонок с разным по длине текстом, нужно сделать их одинаковой высоты и скрыть лишнее.
HTML-разметка:
Первое что можно сделать, это установить высоту блока, а лишнее скрыть с помощью overflow: hidden .
.items-text
Результат будет не очень информативный:
Многоточие
Свойство text-overflow: ellipsis добавляет многоточие к скрываемому тексту и работает только в паре с white-space: nowrap (отменяет переносы строк). Но можно сделать такой приём для нескольких строк текста с помощью свойств display: -webkit-box и -webkit-line-clamp: 4 .
.items-text
Результат:
Градиент по тексту
В конец блока с текстом можно наложить абсолютный элемент с градиентом от прозрачного до белого, так получится эффект «затухания».
.items-text < overflow: hidden; position: relative; height: 62px; >.items-text:after
Результат:
Второй вариант с затуханием сверху вниз:
.items-text < overflow: hidden; position: relative; height: 62px; >.items-text:after
Результат:
Если используется фоновое изображение, то подойдёт вариант с использованием background-clip: text – наложение изображения или градиента на текст.
.items-text
15.04.2020, обновлено 21.02.2021
Предыдущая запись Contenteditable – текстовый редактор
Следующая запись Работа с архивами через SSH
Комментарии
Авторизуйтесь, чтобы добавить комментарий.
Другие публикации

Примеры, как вывести текст в три колонки одинаковой ширины и отступом между ними с помощью разных CSS-свойств.

Такой вопрос возникает при вставке текста из формы на сайт (отзывы, комментарии и т.д.) с форматированием элементом p.
Как скрыть текст внутри блока?
@teran, это не интересно. Вдруг у меня куча текста с прерываниями (между текстом стоят другие элементы: картинки, блоки) и мне что, каждый кусок текста нужно в span оборачивать?
3 фев 2017 в 17:14
font-size: 0; можно так 🙂
3 фев 2017 в 17:18
@L.Vadim, так добавьте этот вариант ответом. Я задал вопрос, что бы вообще все варианты узнать )
3 фев 2017 в 17:21
@УткаУчитсяУму под цвет эт фока это будет visibility:hidden, но не display:none, а вообще тут тогда и color:transparent подойдёт 🙂
3 фев 2017 в 17:34
6 ответов 6
Сортировка: Сброс на вариант по умолчанию
Есть несколько вариантов реализации скрытия текста:
-
Просто обернуть текст в блоке в span и скрыть его
.el > span
Текст
Текст
Текст
Текст
Текст
Отслеживать
ответ дан 10 июл 2017 в 17:30
15.9k 8 8 золотых знаков 52 52 серебряных знака 100 100 бронзовых знаков
Использовал font-size:0; таким образом скрыл текст
.list < >.list-item < /* text-display: none; */ font-size:0; width:200px; height:20px; background:green; >div
Отслеживать
ответ дан 3 фев 2017 в 17:28
3,416 1 1 золотой знак 10 10 серебряных знаков 18 18 бронзовых знаков
Хм, в Firefox он внезапно не скрылся, слева от зелёного прямоугольника появились пиксели являющиеся текстом, по одному на строку
3 фев 2017 в 17:33
Походу эти пиксели — кружочки от
3 фев 2017 в 17:40
да это кружочки li
3 фев 2017 в 17:42
на всякий случай: list-style: none; если надо скрыть кружочки (а надо ли? они тоже не текст =))
3 фев 2017 в 17:44
@УткаУчитсяУму вроде в вопросе про кружочки не скзано
3 фев 2017 в 17:47
если важно, чтоб текст был но его не было видно — можно использовать:
color: rgba(0, 0, 0, 0);
Отслеживать
ответ дан 6 июл 2020 в 8:46
Semen Prokhoda Semen Prokhoda
21 1 1 бронзовый знак
Можно ещё указать color: transparent
6 июл 2020 в 10:45
.list-item
Отслеживать
15.9k 8 8 золотых знаков 52 52 серебряных знака 100 100 бронзовых знаков
ответ дан 3 фев 2017 в 20:01
Utmost Creator Utmost Creator
152 6 6 бронзовых знаков
Ну этот же вариант скроет всё, а не только текст
3 фев 2017 в 20:03
Нет такого значения. Поменяй none на hidden .
10 июл 2017 в 19:32
Если нужно скрыть только часть текста (например чтобы при наведении показывать весь блок):
.block < width:45px; white-space:nowrap; overflow:hidden >.block:hover
Видно Невидно
Отслеживать
ответ дан 29 сен 2019 в 17:25
.list-item
Отслеживать
22.4k 11 11 золотых знаков 56 56 серебряных знаков 120 120 бронзовых знаков
ответ дан 4 фев 2017 в 19:56
Utmost Creator Utmost Creator
152 6 6 бронзовых знаков
Роман, у вас уже ест ответ, дополните его, а не создавайте новый. И — оформляйте код как код, вы же уже делали это в других ответах.
4 фев 2017 в 21:04
@AK, во-первых, это разные ответы и не надо ничего дополнять. Во-вторых, я знаю только один браузер, гда описанное в этом ответе работает: Опера 12. По стандарту это должно игнорироваться.
text-overflow
Определяет параметры видимости текста в блоке, если текст целиком не помещается в заданную область. Возможны два варианта: текст обрезается; текст обрезается и к концу строки добавляется многоточие. text-overflow работает в том случае, если для блока значение свойства overflow установлено как auto , scroll или hidden .
Синтаксис
text-overflow: clip | ellipsis
Значения
clip Текст обрезается по размеру области. ellipsis Текст обрезается и к концу строки добавляется многоточие.
HTML5 CSS3 IE Cr Op Sa Fx
text-overflow
Результат данного примера показан на рис. 1.

Рис. 1. Многоточие в конце текста
Браузеры
Opera с версии 9.0 до версии 11.0 использует нестандартное свойство -o-text-overflow .
CSS стили: способы скрыть элемент CSS

Скрыть элементы в css можно, используя стили CSS множеством способов. Ты можешь скрыть при помощи установки opacity на 0, visibility на hidden, display на none или установить крайние значения до самого конца.
Вы когда-либо задавались вопросом, почему так много методов сокрытия элементов, хотя конечная цель у них одна?
Но на самом деле все методы различаются друг от друга, и их особенности подскажут нам когда использовать тот или иной метод. В данной статье будут рассмотрены лишь небольшие различия методов, которые Вы должны учесть при их использовании, когда хотите пользоваться стилями CSS скрыть элемент.
1 метод скрываем элемент с помощью: Opacity — (непрозрачность)
Данное свойство Opacity устанавливает прозрачность элемента. Он не предназначен изменять саму контурную рамку у элемента. Это значит, что установив Opacity до 0, визуально элемент скроется, но по прежнему буде занимать свое место на веб-странице и влиять ее макет. А также будет реагировать на действие пользователя.
.hide
Если собираетесь использовать свойство Opacity для скрытие элемента от чтения, то это неудачный метод, так как он будет доступен для чтения как и остальные элементы веб-страницы, другими словами вы не ощутите разницу с использованием Opacity и без него.
Хотелось бы отметить, что свойство opacity можно анимировать и использовать несколько отличных эффектов.
Взгляните на следующее html и css
123
div < padding: 60px; width: 60px; font-size: 3em; background: pink; text-align: center; margin: 1%; display: inline-block; float: left; cursor: pointer; font-family: 'Lato'; >.o-hide < opacity: 0; transition: all ease 0.8s; >.o-hide:hover
При наведении курсора на скрытый второй блок, элемент переходит плавно от непрозрачности к полной прозрачности. Блок имеет cursor для pointer чтобы показать возможность взаимодействия.
2 метод скрытия элемента с помощью стилей CSS: Visibility — (видимость)
Следующим свойством нашего списка — Visibility , установив который поможет скрыть наш элемент. Данное свойство, как и opacity по прежнему влияет на макет нашей веб — страницы. Отличительной чертой является то, что он не будет фиксировать любое взаимодействие пользователя, когда на элементы установлено свойство — скрытое от пользователей. Элемент будет не доступен для чтения с экрана. Данное свойство можно настроить, задавая начальные и конечные значения, таким образом переход между различным состоянием видимости будет мягким, плавным, без резкости.
.hide
В примере можно наблюдать различия visibility от opacity
12
3
div < padding: 60px; width: 60px; font-size: 3em; background: pink; text-align: center; margin: 1%; display: inline-block; float: left; cursor: pointer; font-family: 'Lato'; >.o-hide < visibility: hidden; transition: all ease 0.8s; >.o-hide:hover < visibility: visible; >.o-hide p
var oHide = document.querySelector(".o-hide"); var oHideP = document.querySelector(".o-hide p"); var count = oHideP.innerHTML; oHide.addEventListener("click", function()< count++; oHideP.innerHTML = count; >);
Обратите внимание, что будущие элементы с установленным visibility скрыты до их обнаружения. попробуйте навести через скрытый элемент, а не на содержание внутри, вы обнаружите, что курсор не изменился на указатель. Кроме того если вы попытаетесь щелкнуть на элементе, то клик не отменятся.
Через тег
, внутри тега , по-прежнему улавливаются все события мыши.
Как только вы наведете курсор на текс в то он сам становится видимым и начинает регистрировать на события.
3 метод, скрываем с помощью: Display — (отражение)
Свойство display скрывает элемент в прямом смысле этого слова. Установка display на none гарантирует, что box-model не формируется вовсе. Используя это свойство, при скрытии элемента, после не остается пустого пространства. Отличительным остается тот момент, что взаимодействие с пользователем невозможно пока стоит display на none , таким образом доступность для чтения будет невозможна, как — будто этот элемент и не существует.
Все будущие наши элементы также скрыты. Данное свойство не может быть анимировано, поэтому переходы между статусами всегда резкие.
Обратите внимание, что элемент доступен через DOM , Вы можете с ним работать как с любым другим элементом.
.hide
Посмотрите на CSS:
12
3
div < height: 60px; padding: 60px 0; width: 180px; font-size: 2em; line-height: 60px; background: pink; text-align: center; margin: 1%; display: block; float: left; cursor: pointer; font-family: 'Lato'; >.o-hide < display: none; transition: all ease 0.8s; >.o-hide:hover < display: block; >.o-hide p
var count = 0; var oHide = document.querySelector(".o-hide"); var firstDiv = document.querySelector("div:nth-child(1)"); firstDiv.addEventListener("mouseover", function()< count++; oHide.innerHTML = '' + count + '
'; >); firstDiv.addEventListener("click", function()< oHide.style.display = "block"; >);
Вы увидите, что у второго блока есть пункт с набором свойств display , но он остается невидимым. Это еще одно отличие между visibility:hidden и display:none . В первом случае происходящее с установленным свойством visibility остается видимым, это не то что происходит с display . Все блоки остаются скрытыми независимо от определенного свойства display .
Теперь наведите курсор несколько раз для сравнение с первым блоком в демо. Задержались? Нажмите на первом блоке. Это должно сделать второй блок невидимым. Внутреннее значение это число отличное от нуля. Это происходит потому, что на элемент, несмотря на то, что он скрыт, можно влиять с помощью JavaScript .
4 метод, скроем при помощи: Position — (позиционирование)
Предположим, Вы хотите поработать с элементом, но не хотите чтобы это отразилось на макете веб-страницы. Никакое свойство, рассмотренное ранее, не могло справиться с этим должным образом. Единственное, что Вы можете сделать в этой ситуации — вынуть данный элемент их окна просмотра. Это действие не повлияет на макет веб — страницы и будет по прежнему активным.
Используя СSS можно сделать:
.hide
В предложенной демонстрации иллюстрируется как нужное перемещение скрывает элемент и работает в основном также как и в предыдущем примере:
Hover!0
0
div < height: 60px; padding: 60px 0; width: 180px; font-size: 2em; line-height: 60px; background: pink; text-align: center; margin: 1%; display: block; float: left; cursor: pointer; font-family: 'Lato'; >.o-hide < position: absolute; top: -9999px; left: -9999px; >.o-hide:hover
var count = 0; var oHide = document.querySelector(".o-hide"); var firstDiv = document.querySelector("div:nth-child(1)"); firstDiv.addEventListener("mouseover", function()< count++; oHide.innerHTML = count; >); firstDiv.addEventListener("click", function()< oHide.style.position = "static"; >);
Здесь основная задача — установить отрицательные крайние верхнее и нижнее значения максимально для долгого исчезновения с экрана нужного элемента. Одним из преимуществ (потенциальный недостаток) метода — это то, что содержимое — абсолютно позиционируемый элемент и читается с экрана.
Это вполне понятно, так как вы переместили элемент из окна просмотра и его не может увидеть пользователь.
Нельзя использовать данный метод на элементы, которые могли бы получить фокус, поскольку может привести неожиданным переходам, при фокусировании на данном элементе. Этот метод часто используется для создания пользовательских переключателей или кнопок радио.
5 метод, скрываем элемент с помощью: Clip-path — (скрепленный путь)
Eще одним из способов скрытие элементов — это скрепление их. Раньше это можно было сделать с помощью свойства clip , но это устаревшее свойство, гораздо современнее признано — clip-path .
Имейте ввиду, что свойство clip-path , которое используется ниже, сейчас может не поддерживаться в IE.
Если используете внешние файл SVG в ваших clip-path , поддерживание еще более ограничено (что не относится к нижеперечисленному). Свойство clip-path для скрытия элементов выглядит так:
.hide
Здесь можно посмотреть действие:
Hover!00
div < height: 60px; padding: 60px 0; width: 180px; font-size: 2em; line-height: 60px; background: pink; text-align: center; margin: 1%; display: block; float: left; cursor: pointer; font-family: 'Lato'; >.o-hide
var count = 0; var oHide = document.querySelector(".o-hide"); var firstDiv = document.querySelector("div:nth-child(1)"); firstDiv.addEventListener("mouseover", function()< count++; oHide.innerHTML = count; >); firstDiv.addEventListener("click", function()< oHide.className = ""; >);
Если Вы наведете курсор на первый элемент, это повлияет на второй элемент, не смотря на то, что он скрыт свойством clip-path . Если Вы щелкните на элемент это выведет скрытый тип, чтобы показать наш элемент, которые были там вместе. Этот текст останется доступным для чтения с экрана и это свойство используется вместе с clip во многих сайтах на WordPress.
Даже, если скрытый элемент не видно, все элементы вокруг работают также и имеют первоначальные прямоугольные размеры. Имейте ввиду, что взаимодействие пользователя как при наведении так и при клике невозможно за пределами определенной области. В нашем случае это означает, что нет прямого взаимодействия пользователя со скрытым элементом. Это свойство может быть анимировано различными способами для создания новых эффектов.
Вывод:
В этой статье было рассмотрено 5 методов скрытия элементов с помощью CSS . Каждое свойство отличается друг от друга, и зная, что Вы хотите достичь, можете уже пользоваться конкретным свойством, что достаточно важно для веб — разработчиков.