Hilfe beim Neuerstellen eines Hero-Banners pro Kategorie (Bild + Überlagerungstext) ohne Layoutverschiebung

Hallo zusammen — ich versuche, ein Kategoriebanner wie im Screenshot unten zu erstellen:

Ziel

  • Gleiches Layout wie im Mockup: großes Banner mit einem kategoriespezifischen Hintergrundbild und überlagertem Titel/Beschreibung.
  • Reibungsloses Laden (kein Flimmern/Größenänderung), vollständig responsiv.
  • Der Hintergrund muss ein Bild sein, das für jede Kategorie einzigartig ist (kein globaler CSS-Stil).

Was ich versucht habe

  • Benutzerdefiniertes JavaScript, um das Bild und den Text einzufügen. Es funktioniert, aber das Bild wird zuerst geladen und dann in der Größe geändert, was zu ruckeligen Übergängen/Layoutverschiebungen führt.
  • Die Komponente Category Banner kam dem nahe, aber ich konnte dieses exakte Layout und die anforderungen für kategoriespezifische Bilder nicht erfüllen.

Frage

  • Was ist der empfohlene Ansatz in Discourse, um dies zu erreichen?
  • Gibt es Beispiele oder CSS/HTML-Muster, um Platz zu reservieren (z. B. Wrapper mit festem Seitenverhältnis/object-fit) und CLS zu vermeiden?
  • Tipps zur Verwendung von kategoriespezifischen Uploads oder Theme-Einstellungen, um das Hintergrundbild sauber festzulegen.

Danke!

1 „Gefällt mir“

Sehr grottige Demo (und ich benutze keine Themenkarten), aber ich denke, das kannst du ganz einfach mit dem integrierten Hintergrundbild der Kategorie machen:

Wenn du in den Kategorieeinstellungen einfach einen Kategoriehintergrund hinzufügst

wird das Bild auf dem Body-Tag platziert. Vielleicht passt du dann das CSS nach Belieben an (mein Beispiel ist 400px):

`+ einige Anpassungen an der Textausrichtung, dann solltest du eine Annäherung an das bekommen, was du willst, denke ich? Der Hauptnachteil ist, dass es wirklich bildschirmfüllend ist, sodass es auf breiteren Bildschirmen herausragt.

Es ist nicht perfekt, aber es ist schnell :wink:

1 „Gefällt mir“

Ich denke, die am ehesten dem entsprechende Theme-Komponente, die ich gesehen habe, ist diese:

Sie könnten sich diese ansehen, um einige Ideen zu bekommen, aber es klingt, als müssten Sie möglicherweise eine benutzerdefinierte Komponente erstellen. Sie könnten unter Marketplace posten, wenn Sie Entwickler suchen, die Ihnen helfen können.

Ja, diese Theme-Komponente ist wahrscheinlich besser, hatte sie vorher noch nicht gesehen TIL