Richten Sie ionische Karten vertikal an Winkelanweisungen aus
Ich versuche, eine einfache Kartensammlung mit dem Ionic-Framework durchzuführen.
Ich verwende die SpaceX-API, um die Karten zu füllen. Mein Code enthält Winkelanweisungen. Ich habe das gebaut:
<ion-grid>
<ion-row>
<ion-col col-4>
<ion-card *ngFor="let launch of list_launches">
<ion-card-header>
{{ launch.mission_name }}
</ion-card-header>
<ion-card-content>
<ion-thumbnail item-start>
<img src="{{launch.links.mission_patch_small}}">
</ion-thumbnail>
</ion-card-content>
</ion-card>
</ion-col>
</ion-row>
</ion-grid>
Dies *ngFor="let launch of list_launches"
wird verwendet, um einige Attribute von Objekt list_launches abzurufen.
Ich habe diese Lösung gefunden:
<ion-row>
<ion-col col-4>
Left
</ion-col>
<ion-col col-4>
Middle
</ion-col>
<ion-col col-4>
Right
</ion-col>
</ion-row>
Dies funktioniert jedoch nicht ordnungsgemäß, wenn ich den Parameter * ngfor verwende. Möchten Sie diese ionischen Karten vertikal ausrichten.
Das Problem hierbei ist also, dass das ionische Gitter erwartet, dass eine nicht generische Vorlage komplexere Gitter erstellt. Ich fand diese Layout-Komponenten immer übertrieben, da die meisten Dinge mit nur wenigen CSS-Deklarationen erledigt werden können. In Ihrem Fall würde ich das Ionengitter überhaupt nicht verwenden und es in CSS-Gitter schreiben . Zwei einfache CSS-Regeln können damit umgehen:
display: grid;
grid-template-columns: 1fr 1fr 1fr;
Ich erstelle hier ein sehr einfaches Raster und sage ihm, dass es drei gleich große Spalten hat ( 1fr
bedeutet 1 Bruch).
Sie können die repeat
Funktion auch verwenden
display: grid;
grid-template-columns: repeat(3, 1fr);
Auch viel weniger Code:
<div style="display: grid;grid-template-columns: 1fr 1fr 1fr;">
<ion-card *ngFor="let launch of list_launches">
<ion-card-header>
{{ launch.mission_name }}
</ion-card-header>
<ion-card-content>
<ion-thumbnail item-start>
<img src="">
</ion-thumbnail>
</ion-card-content>
</ion-card>
</div>
https://stackblitz.com/edit/ionic-7qd5xf
Update : Wie Thomas in den Kommentaren vorgeschlagen hat, reicht es auch aus, die *ngFor
Direktive ion-col
selbst zu verwenden:
<ion-row>
<ion-col col-4 *ngFor="let launch of list_launches" >
<ion-card >
<ion-card-header>
{{ launch.mission_name }}
</ion-card-header>
<ion-card-content>
<ion-thumbnail item-start>
<img src="">
</ion-thumbnail>
</ion-card-content>
</ion-card>
</ion-col>
</ion-row>