【发布时间】:2020-06-09 20:06:49
【问题描述】:
如何使用 Angular2 或纯 CSS 实现一个简单的箭头 (>) 来指示 Bootstrap 4 手风琴中的 aria-expanded="true" or aria-expanded="false" 状态?
我看了很多教程并尝试了更多,但我认为我遗漏了一些东西。
我尝试过仅使用 CSS,但箭头不显示(这可能是要走的路):
.card .card-header:after{
float: right;
border: 2px solid #f07f09;
border-width: 0 3px 3px 0;
padding: 6px;
margin-right: 10px;
}
我尝试过使用ngClass,但我的问题是它使用以下代码将箭头状态应用于所有元素(有没有办法使用索引来完成这项工作?):
<i [ngClass]="{'right':!expanded, 'down':expanded}"></i>
以及设置状态的方法:
(click)="changeDropdownArrowState()"
我的组件中的方法:
changeDropdownArrowState () {
this.expanded = !this.expanded;
}
我的 HTML:
<div class="card">
<div class="card-header" id="headingOne">
<h2 class="mb-0">
<button class="btn btn-link btn-block text-left" type="button" data-toggle="collapse"
data-target="#collapseOne" aria-expanded="false" aria-controls="collapseOne" (click)="changeDropdownArrowState()">
<h1>Personal Details
<i [ngClass]="{'right':!expanded, 'down':expanded}"></i>
</h1>
</button>
</h2>
</div>
<div id="collapseOne" class="collapse" aria-labelledby="headingOne" data-parent="#retailCliamAccordian">
<div class="card-body">
some text
</div>
</div>
</div>
<div class="card">
<div class="card-header" id="headingTwo">
<h2 class="mb-0">
<button class="btn btn-link btn-block text-left collapsed" type="button" data-toggle="collapse"
data-target="#collapseTwo" aria-expanded="false" aria-controls="collapseTwo" (click)="changeDropdownArrowState()">
<h1>Product Details
<i [ngClass]="{'right':!expanded, 'down':expanded}"></i>
</h1>
</button>
</h2>
</div>
<div id="collapseTwo" class="collapse" aria-labelledby="headingTwo" data-parent="#retailCliamAccordian">
<div class="card-body">
other text
</div>
</div>
</div>
我的 CSS:
i {
float: right;
border: 2px solid #f07f09;
border-width: 0 3px 3px 0;
padding: 6px;
margin-right: 10px;
}
.right {
transform: rotate(-45deg);
}
.down {
transform: rotate(45deg);
}
我认为使用属性aria-expanded="true/false" 可能是另一种方法。
【问题讨论】:
标签: css angular bootstrap-4