CSS селектор для усеченного текста - PullRequest
0 голосов
/ 11 октября 2018

Если у меня есть усеченный ярлык, есть ли способ узнать, был ли текст слишком длинным?Это было бы полезно для условного добавления дополнительного стиля для обрезанного текста.

.truncate {
  width: 250px;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

Вот то, что я хотел бы сделать.

.truncate:truncated {
  color: red;
}

Ответы [ 2 ]

0 голосов
/ 12 октября 2018

Похоже, что это невозможно с текущими селекторами / стандартами CSS.

0 голосов
/ 11 октября 2018

Если вы не возражаете против использования небольшого количества JavaScript, решение тривиально.
Не уверен, что существует решение, отличное от JavaScript.

var divs = document.querySelectorAll('.truncate');
for (var i = 0; i < divs.length; ++i)
  if (divs[i].scrollWidth > divs[i].clientWidth)
    divs[i].classList.add('truncated');
.truncate {
  width: 250px;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.truncate.truncated { /* note the dot here instead of a colon */
  color: red;
}
<div class="truncate">
  This is the content
</div>
<div class="truncate">
  This is the content that is far longer than the container
</div>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...