Я не знаю, почему этот простой CSS не работает ...
.app a {
height: 18px;
width: 140px;
padding: 0;
overflow: hidden;
position: relative;
margin: 0 5px 0 5px;
text-align: center;
text-decoration: none;
text-overflow: ellipsis;
white-space: nowrap;
color: #000;
}
<div class="app">
<a href="">Test Test Test Test Test Test</a>
</div>
Стоит отрезать около 4-го "Теста"
FF only
- еслиfilter
применяется, многоточие не будет отображаться. ошибка открытаtext-overflow
: brainlessdeveloper.com/2017/07/29/why-wont-my-text-overflowОтветы:
text-overflow:ellipsis;
работает только тогда, когда выполняются следующие условия:px
(пикселях). Ширина в%
(процентах) не будет работать.overflow:hidden
иwhite-space:nowrap
установить.Причина, по которой у вас возникают проблемы, заключается в том, что
width
вашa
элемент не ограничен. У вас естьwidth
настройка, но поскольку элемент установленdisplay:inline
(то есть по умолчанию), он игнорирует его, и ничто иное не ограничивает его ширину.Вы можете исправить это, выполнив одно из следующих действий:
display:inline-block
илиdisplay:block
(возможно, первый, но зависит от ваших требований макета).display:block
и присвойте этому элементу фиксированныйwidth
илиmax-width
.float:left
orfloat:right
(возможно, первое, но, опять же, любой из них должен иметь тот же эффект, что и многоточие).Я бы предложил
display:inline-block
, так как это будет иметь минимальное побочное влияние на ваш макет; он работает очень похоже наdisplay:inline
то, что он использует в настоящее время, что касается макета, но не стесняйтесь экспериментировать и с другими пунктами; Я попытался дать как можно больше информации, чтобы помочь вам понять, как эти вещи взаимодействуют друг с другом; Большая часть понимания CSS связана с пониманием того, как различные стили работают вместе.Вот фрагмент с вашим кодом, с
display:inline-block
добавлением, чтобы показать, насколько вы были близки.Полезные ссылки:
источник
white-space: nowrap
на самом деле не нужно. Мы все еще можем видеть эллипсы даже без него. Для нескольких линийtext-overflow
, см это SOwhite-space: nowrap
требуется, хотя.width
вообще. Все, что вам нужно сделать, это установить,white-space: nowrap;
и он работает просто отлично.Принятый ответ потрясающий. Тем не менее, вы все равно можете использовать
%
ширину и достичьtext-overflow: ellipsis
. Решение простое:Кажется , каждый раз , когда вы используете
calc
, окончательное значение отображается в абсолютных пикселей, которые последовательно преобразует80%
в нечто вроде800px
для1000px
-Width контейнера. Поэтому вместо использованияwidth: [YOUR PERCENT]%
используйтеwidth: calc([YOUR PERCENT]%)
.источник
Поэтому, если вы дойдете до этого вопроса из-за проблем с попыткой заставить многоточие работать внутри
display: flex
контейнера, попробуйте добавитьmin-width: 0
к крайнему контейнеру, который переполняет его родительский элемент, даже если вы уже установилиoverflow: hidden
его и посмотрите, как это работает для вас.Более подробная информация и рабочий пример этого кодекса от aj-foster . Полностью добился цели в моем случае.
источник
position: sticky
элемента вdisplay: flex
контейнере.Также убедитесь, что
word-wrap
установлено нормальное значение для IE10 и ниже.Стандарты, на которые ссылаются ниже, определяют поведение этого свойства как зависящее от установки свойства text-wrap. Однако параметры WordWrap всегда эффективны в Windows Internet Explorer, поскольку Internet Explorer не поддерживает свойство «text-wrap».
Следовательно, в моем случае
word-wrap
было установлено слово-брейк (унаследованное или по умолчанию?), Заставляющееtext-overflow
работать в FF и Chrome, но не в IE.ms информация о свойствах переноса слов
источник
anchor
,span
... теги являются встроенными элементами по умолчанию, в случае, еслиwidth
свойство встроенных элементов не работает. Таким образом , вы должны преобразовать элемент либоinline-block
илиblock level
элементовисточник
Включите четыре строки, написанные после информации для работы многоточия
источник
Добавить
display: block;
илиdisplay: inline-block;
к вашему#User_Apps_Content .DLD_App a
демонстрация
источник
Вы просто добавляете одну строку css:
источник
В начальной загрузке 4 вы можете добавить
.text-truncate
класс для усечения текста с помощью многоточия.источник
Должен содержать
НЕ ДОЛЖЕН содержать
ДОЛЖЕН содержать
источник
Вы также можете добавить float: left; внутри этого класса #User_Apps_Content .DLD_App a
источник
Я должен был сделать несколько длинных описаний эллипса (взять только одну полосу), будучи отзывчивым, поэтому мое решение состояло в том, чтобы разрешить перенос текста (вместо
white-space: nowrap
), и вместо фиксированной ширины я добавил фиксированную высоту:источник
Это код, который позволяет:
переполнение: требуется скрытый
источник
Я столкнулся с той же проблемой, и кажется, что ни одно из вышеприведенных решений не работает для Safari. Для браузеров без сафари это работает просто отлично:
Для Safari это тот, который работает для меня. Обратите внимание, что медиа-запрос, чтобы проверить, является ли браузер Safari, может со временем измениться, поэтому просто возьмите медиа-запрос, если он не работает для вас. Со
line-clamp
свойством также возможно иметь несколько строк в сети с многоточием, см. Здесь .источник
https://stackoverflow.com/a/53784508/5626747
Не могу комментировать из-за репутации, поэтому я делаю другой ответ:
В этом случае вам также придется удалить обычно предлагаемое
display: block;
свойство из элемента, для которого вы устанавливаетеtext-overflow: ellipsis;
, или оно будет отключено без ... в конце.источник
источник