Anlass zu diesem Beitrag war eine Frage in einer Facebook-Gruppe. Die Frage war: Kann man ein Card-Design aus Bild und Text mit Gutenberg-Bordmitteln umsetzen? Ja, das geht sehr gut.
Um die Cards mit Gutenberg zu bauen, lege ich zunächst zwei Spalten mit dem Spalten-Block an. Ich weise jeder Spalte im Spalten-Block die CSS-Klasse .cards-container
zu. In die Spalten setze ich jeweils zuerst einen Bild-Block und darunter eine Überschrift und einen Text-Block (kann auch eine Liste sein). Diese drei Elemente – Bild, Überschrift und Text – fasse ich zu einer Gruppe zusammen. Die Gruppe bekommt dann die CSS-Klasse .card-item
zugewiesen.
Die Spalten samt Cards kann man als Block-Pattern abspeichern. Den Artikel dazu gibt es hier.
Im Customizer trage ich im Panel „zusätzliches CSS“ die folgenden Styles ein:
/* Die Spalte ist der cards-container, alle items werden automatisch gleich hoch */ .cards-container{ display:flex; } /* Look für die Cards */ .cards-container .card-item{ border:1px solid #ccc; box-shadow: 3px 3px 3px #ccc; border-radius:4px; } /* Text unter dem Bild */ .cards-container .card-item ul, .cards-container .card-item p, .cards-container .card-item h3{ padding-left:20px; padding-right:20px; }
Sommer-Drink-Rezepte im Card-Design
Hugo
- Ein großes Glas zu 1/3 mit Eiswürfeln füllen
- Ein paar Blätter frische Minze
- 30ml (3cl) Holunderblütensirup
- 2 Viertel einer Bio-Limette (etwas Saft ausdrücken)
- 150 ml Prosecco oder Sekt
- Ein Schuss Mineralwasser
Ich zerdrücke die Blätter der Minze immer ein bisschen, damit kommt das Aroma besser zur Geltung.
Apérol Sprizz
- Ein bauchiges Weinglas zu 1/3 mit Eiswürfeln füllen
- 2 Scheiben einer 1 Bio-Orange
- 1 Teil Aperol
- 2 Teile Sekt
- Mit Mineralwasser auffüllen
Aperol ist ein Destillat aus Rhabarber, Chinarinde, Gelbem Enzian, Bitterorange und aromatischen Kräutern mit orange-roter Färbung und bittersüßem Aroma. Der Alkoholgehalt beträgt 11%.
Responsiveness
Damit die Cards auch auf kleinen Bildschirmen funktionieren, müssen die Spalten irgendwann untereinander angeordnet werden. Das macht der Spalten-Block zwar automatisch, aber hier in meinem Theme kommt die Umstellung zu spät. Ich muss also dafür sorgen, dass das Umsortieren früher – also bei einer größeren Bildschirmbreite – passiert.
Dazu verändere ich das CSS des Spalten-Blocks. Standard-Einstellung ist display:flex
. Ich ändere das in display:block
und „deaktiviere“ damit die Flexbox-Darstellung bis zu einer Bildschirmbreite von 940px. Ab 940px aufwärts greift das Flexbox-Layout wieder und die Spalten landen wieder nebeneinander.
940px ist die Breite, bei der hier in meinem Theme der Text anfängt in der horizontalen Card-Variante aus der Box zu rutschen In der vertikalen Variante werden die Cards zu lang. Welche Breite für dein Layout passt, musst du ausprobieren.
@media (min-width: 600px) and (max-width:940px){ .wp-block-columns.test-cards { display:block; } }
Anmerkungen
Der oben beschriebene Weg funktioniert am besten, wenn dein Theme möglichst wenig in die Gestaltung des Spalten-Blocks und der anderen Blöcke eingreift. Viele Themes fügen hier z.B. margins, paddings und andere CSS-Dinge hinzu. Das hat zur Folge, dass es sich nicht so schön ausgeht wie oben gezeigt.
Auch die Breite des Contentbereichs ist ein wichtiger Faktor. Ist die zu klein – wie z.B. die 580px bei Twentytwenty – dann klappt es mit den zwei Spalten nebeneinander nicht.
Du musst also ausprobieren und über die Browserkonsole prüfen, ob dein Theme irgendwelche CSS-Angaben hinzufügt. Die musst du dann gegebenenfalls überschreiben.