【发布时间】:2022-01-26 04:07:43
【问题描述】:
我在尝试使用 diplay:grid 将 div 放在另一个 div 下方时遇到问题。 div 被放置在另一个的顶部而不是下方。
“app-bm-payment-card-item”是一个自定义的 Angular 组件。
HTML 文件
//div wrapper
<div *ngIf="pageReady && myProfiles" class="ion-padding">
//div showing the cards stacked or collapsed
<div *ngIf="!inEditMode" class="card_container_stacked_main">
<app-bm-payment-card-item *ngFor="let card of myProfiles" [card]="card" [editMode]="inEditMode"
(onDeleteClick)="removeCard(card)" (onSelect)="selectCard(card)" (onEditClick)="editCardInfo(card)">
</app-bm-payment-card-item>
</div>
//div showing the cards expanded
<div *ngIf="inEditMode" class="card_container_expanded_main">
<app-bm-payment-card-item *ngFor="let card of myProfiles" [card]="card" [editMode]="inEditMode"
(onDeleteClick)="removeCard(card)" (onSelect)="selectCard(card)" (onEditClick)="editCardInfo(card)">
</app-bm-payment-card-item>
</div>
//div to be placed below the other one(s)
<div class="div">
TEXT
</div>
</div>
SCSS 文件:
.card_container_stacked_main {
display:grid;
position: relative;
grid-auto-rows:30px; /* a fixed height to create an overflow */
}
.card_container_expanded_main {
position: relative;
max-width: 400px !important;
//margin-bottom: 15px;
}
.div {
position: relative;
}
因此,基本功能是当点击任何卡片时,卡片列表应堆叠或折叠显示。这就是为什么我使用 inEditMode 布尔值来了解应该显示哪个 div 以及隐藏哪个 div。当显示扩展卡片列表时,div(TEXT)被正确放置在列表下方,但是当堆叠卡片列表被激活时,div被放置在列表顶部,这是错误的,它应该放在堆叠下方/折叠的卡片列表。请参阅下面的图片。
【问题讨论】:
-
您要显示多少堆栈列项?
-
你的意思是堆叠了多少张卡片?如果是,它是一个动态值。问题与网格有关,因为 div (TEXT) 的行为就像是堆叠的另一张卡片,它应该放在堆叠的卡片下方,因为它是另一个 div..对吧?
-
所以你真的想在网格下方显示文本?堆栈网格很适合你。
-
我希望 div TEXT 保持在堆叠网格下方,就像第二张图片中 div TEXT 放在展开的卡片列表正下方一样。
-
我已经给你发了邮件。请检查一下。谢谢。
标签: html css angular ionic-framework css-grid