#javascript #css #angular #ngfor #string-interpolation
#javascript #css #angular #ngfor #строка-интерполяция
Вопрос:
Я перебираю элементы списка, чего я хочу добиться, так это отсутствия границы прямо на элементе, который является предыдущим (Сводка 2) к активному li (Mindmap 3), как показано на изображении, он всегда присваивает границу каждому элементу в неупорядоченном списке, я написал это условие if, в котором говорится назначить границу всем элементам li, имеющим индекс меньше длины неупорядоченного списка, а не элементу, который предшествует выбранному li, но он также присваивает границу — оставляем для того элемента, который в нашем случае является summary 2. Я думаю, что что-то не так с условием if, но я не смог выяснить, что?
<ul class="nav nav-tabs">
<li *ngFor="let tab of tabs; let i = index" (click)="selectTab(tab)"
[class.active]="tab.active"
[class.border]="(i < tabs.length - 1) amp;amp; !(tabs[i 1]?.active)">
<div>
<div>
<img class="icon" style="width: 18px;"
src="../../../assets/icons/{{tab.icon}}.svg">
{{tab.title}} {{i}}
</div>
</div>
</li>
</ul>
Определения Css следующие.
.active {
border: 1px solid #eaeef0;;
border-radius: 4px 4px 0 0;
border-bottom: 1px solid white;
margin-bottom: -6px;
height: 44px;
}
.border {
border-right: 1px solid red;
}
Комментарии:
1. Можем ли мы увидеть определение css для
.active
и.border
?2. @chris.va.rao отредактировал вопрос, добавил определение css 🙂
Ответ №1:
Я думаю, вам не нужно выбирать предыдущий li
элемент, чтобы удалить границу. Просто установите левую границу вместо правой и измените свой CSS, как показано ниже.
li {
border-left: 1px solid red;
}
li:nth-child(1) {
border-left:none; /*First element should not have a left border*/
}
li.active {
border-left: none;/*Border definition for active element*/
}
Комментарии:
1. Я думаю, вы не совсем ясно поняли вопрос, я не хочу иметь границу справа от предыдущего элемента выбранного элемента, поэтому в нашем случае summary 2 — это предыдущий el, а mindmap — текущий.
2. @DivyanshuRawat Я понял ваш вопрос и чувствую, что ваша реализация нуждается в изменении. вместо удаления правой границы предыдущего, почему бы не установить левую границу текущего? Ваш CSS нуждается в изменении. Дайте нам онлайн-код, и я это исправлю