Novitsky
@Novitsky
Веб-разработчик, дизайнер, фотограф

Почему не работает text-overflow?

Здравствуйте.

Почему-то не работает text-overflow. Вернее, текст обрезается, но не так — не добавляется многоточие в конце.

Пример:
<nav>
  <ul>
    <li><a href="#">Link 1</a></li>
    <li><a href="#">Link 2</a></li>
    <li class="clip"><a href="#">Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.</a></li>
    <li class="last-child">
      <a class="first-child-a" href="#">Link 4</a>
      <a href="#">Link 5</a>
    </li>
  </ul>
</nav>

body {
  margin:0;
}
nav {
	background-color:whitesmoke;
}
ul {
	display:-webkit-flex;
	display:   -moz-flex;
	display:    -ms-flex;
	display:        flex;

	margin:0;
	padding:0;
	width:100%;

	list-style:none;

	-webkit-justify-content:flex-start;
	   -moz-justify-content:flex-start;
	    -ms-justify-content:flex-start;
	        justify-content:flex-start;
}
ul li {
	display:-webkit-flex;
	display:   -moz-flex;
	display:    -ms-flex;
	display:        flex;

	margin:0 1rem 0 0;
}
ul li a {
	padding:.3rem .5rem;

	background-color:lightgrey;
}
ul li:last-child {
	margin:0;
}
.clip {
	white-space:nowrap;
	overflow:hidden;
	text-overflow:ellipsis;
}
ul li:nth-last-child(2) {
  -webkit-flex-grow:1;
	   -moz-flex-grow:1;
	    -ms-flex-grow:1;
	        flex-grow:1;
}
.first-child-a {
  margin-right:1rem;
}

Живой пример.
  • Вопрос задан
  • 6935 просмотров
Решения вопроса 1
@GreatRash
1) Если вы кроссбраузерно хотите флексы объявить, то неправильно это делаете:

ul {
  display: -ms-flexbox;
  display: -webkit-flex;
  display: flex;
}


2) Для li тоже самое повторять не надо.
3) Для того, чтоб text-overflow сработал должна быть ширина задана явно (хотя бы максимальная).

Не знаю этого ли вы хотели добиться.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы