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
або float:right
(можливо, колишній, але знову ж таки, або має мати такий же ефект, що стосується еліпсису).
Я б запропонував display:inline-block
, оскільки це матиме мінімальний побічний вплив на ваш макет; він працює дуже схоже на display:inline
те, що він використовує в даний час, що стосується макета, але сміливо експериментуйте і з іншими моментами; Я намагався дати якомога більше інформації, щоб допомогти вам зрозуміти, як ці речі взаємодіють разом; значна частина розуміння CSS - це розуміння того, як різні стилі працюють разом.
Ось фрагмент із вашим кодом із display:inline-block
доданим, щоб показати, наскільки ви були близькими.
.app a {
height: 18px;
width: 140px;
padding: 0;
overflow: hidden;
position: relative;
display: inline-block;
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>
Корисні посилання: