У меня угловое приложение. В строке меню я отображаю путь текущего routerLink. Который в некоторых частях приложения может стать довольно широким. Настолько широкий, что создает горизонтальную прокрутку. То, что я хотел бы сделать, это скрыть этот путь, как только появляется прокрутка, и показать вместо него другой элемент (это будет происходить на меньших экранах). Не уверен, что я должен делать это в чистом CSS программно в файле ts.
Поэтому я в основном хочу удалить «someclass», когда есть overflow-x, и вместо этого показать «whenthereisoverflow». Я хочу переместить путь ссылки на новую панель инструментов при переполнении.
Я не хочу использовать медиа-запросы или аналогичные решения, потому что ширина пути может варьироваться в зависимости от того, где вы находитесь в приложении.
<mat-toolbar>
<div class="someclass">
<ul>
<li>
<a [routerLink]="link.url">
{{ link.url }}
</a>
</li>
</ul>
</div>
<div>Some other content</div>
</mat-toolbar>
<mat-toolbar class="whenthereisoverflow">
<div>
<ul>
<li>
<a [routerLink]="link.url">
{{ link.url }}
</a>
</li>
</ul>
</div
</mat-toolbar>
2 ответа
Вы можете легко это сделать, проверив, не переполнено ли содержимое div
. Используйте следующий фрагмент, чтобы сделать это.
Comp- 1.component.html
<mat-toolbar>
<div id="divToCheck">
<div id="divToModify">
<!--content-->
</div>
</div>
</mat-toolbar>
Comp- 1.component.ts
checkOverflowing() {
const element = document.getElementById('divToCheck');
const curOverflow = element.style.overflow;
if (!curOverflow || curOverflow === 'visible') {
element.style.overflow = 'hidden';
}
const isOverflowing = element.clientWidth < element.scrollWidth || element.clientHeight < element.scrollHeight;
element.style.overflow = curOverflow;
if (isOverflowing) {
document.getElementById('divToModify').classList.add('someclass');
} else {
document.getElementById('divToModify').classList.add('whenthereisoverflow');
}
}
это проверит, переполнен ли divToCheck
, и добавит соответствующий класс в divToModify
, как вы пожелаете.
Надеюсь это поможет!
Удачи!!
Попробуй это:
p {
margin: 0;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
}
<a href="#"><p>skdjfhksjdfhksjd fhksdjfhksdjfh ksjdhfksjdfhskdjfhs skdjfhsdfk skdjfhksjdfhksjd fhksdjfhksdjfh ksjdhfksjdfhskdjfhs skdjfhsdfk</p></a>
Новые вопросы
html
HTML (HyperText Markup Language) является основным языком разметки для создания веб-страниц и другой информации, отображаемой в веб-браузере. Вопросы относительно HTML должны включать минимальный воспроизводимый пример и некоторое представление о том, чего вы пытаетесь достичь. Этот тег редко используется один и часто в паре с [CSS] и [javascript].