#html #css #angular
#HTML #css #angular
Вопрос:
У меня есть HTML, подобный этому
<div class="scx-individual-supplier" *ngFor="let request of suppliers" >
<div>
<scx-indv-supplier
class="row"
*ngIf="!(request.status === 'CANCELLED' amp;amp; request.durationDays > 179)"
[request]="request"
[requestId]="request.requestId"
></scx-indv-supplier>
</div>
</div>
Применил CSS к scx-individual-supplier и использовал первого дочернего элемента, но он не удаляет верхнюю границу для первой строки
.scx-individual-supplier{
border-top: 1px solid #d0c9c9;
}
.scx-individual-supplier:first-child {
border-top: none !important;
}
Комментарии:
1. Вы пытаетесь добавить границу к родительскому элементу или к дочернему
div
элементу?2. РОДИТЕЛЬСКИЙ элемент <div class=»scx-individual-supplier» *ngFor=»разрешить запрос поставщиков» >
Ответ №1:
Используйте индекс ngFor: *ngFor="let item of items; let i = index"
Затем в вашей стихии используйте
[ngClass]={i === 0 ? 'styleWithoutTopBorder' : 'styleWithTopBorder'}
Тот самый ? это троичное выражение, которое выбирает css-класс в зависимости от результата i === 0.
обновление: с помощью кода
css:
.noTopBorder { border: '1px solid black'; border-top: none; } .withTopBorder { border: '1px solid black'; }
HTML:
<div class="scx-individual-supplier" *ngFor="let request of suppliers; let i = index" [ngClass]="{i === 0 ? 'noTopBorder' : 'withTopBorder'}" > <div> <scx-indv-supplier class="row" *ngIf="!(request.status === 'CANCELLED' amp;amp; request.durationDays > 179)" [request]="request" [requestId]="request.requestId" ></scx-indv-supplier> </div> </div> <div>
Комментарии:
1. @nickolas Это единственный правильный способ при стилизации элементов в цикле в зависимости от его индекса.
2. можете ли вы написать css для этого
3. ваш код выдает ожидаемую ошибку Отсутствует: в столбце 4 в [{i === 0 ? ‘noTopBorder’ : ‘withTopBorder’}] в ng:///SuppliersModule/SuppliersComponent.html@45:88 (»
4. Ожидаемая ошибка синтаксического анализатора: отсутствует: в столбце 4 в [{i === 0 ? ‘noTopBorder’ : ‘withTopBorder’}] в ng:///SuppliersModule/SuppliersComponent.html@59:2 (» <div class=»scx-individual-supplier» *ngFor=»разрешить запрос поставщиков; пусть i = index» [ОШИБКА ->][ngClass]=»{i === 0 ? ‘noTopBorder’ : ‘withTopBorder’}» >
Ответ №2:
Вы можете использовать first
переменную, предоставленную ngFor
:
<div class="scx-individual-supplier" *ngFor="let request of suppliers; first as isFirst" [class.no-border]="isFirst" >
<div>
<scx-indv-supplier
class="row"
*ngIf="!(request.status === 'CANCELLED' amp;amp; request.durationDays > 179)"
[request]="request"
[requestId]="request.requestId"
></scx-indv-supplier>
</div>
</div>
Комментарии:
1. как насчет css, какие-либо изменения для записи в css
2. можете ли вы написать css для этого
3. .no-border { border-top: none; } это правильный css
4. но это не удаляет мою границу сверху для первой строки, что является первым?
5. @nickolas angular.io/api/common/NgForOf#local-variables