Anpassen des Erscheinungsbilds Ihrer Formulare
Formulare sind von entscheidender Bedeutung für die Benutzerinteraktion auf Websites, da sie die Eingabe von Daten ermöglichen. Sie können Cascading Style Sheets (CSS) verwenden, um Formularfelder zu formatieren, die visuelle Darstellung Ihrer Formulare zu verbessern und das Benutzererlebnis zu verbessern.
Der Baustein „Adaptives Formular“ sorgt für eine einheitliche Struktur für alle Formularfelder. Diese konsistente Struktur erleichtert die Entwicklung von CSS-Selektoren zur Auswahl und Gestaltung von Formularfeldern anhand von Feldtypen und Feldnamen.
In diesem Dokument wird die HTML-Struktur für verschiedene Formularkomponenten erläutert und Ihnen dabei geholfen, ein Verständnis dafür aufzubauen, wie Sie CSS-Selektoren für verschiedene Formularfelder erstellen, um Formularfelder eines adaptiven Forms-Blocks zu gestalten.
Am Ende des Artikels werden Sie:
- Machen Sie sich mit der Struktur der im adaptiven Forms-Block enthaltenen Standard-CSS-Datei vertraut
- Machen Sie sich mit der HTML-Struktur der Formularkomponenten vertraut, die vom adaptiven Forms-Block bereitgestellt werden, einschließlich allgemeiner Komponenten und spezifischer Komponenten wie Dropdown-Listen, Optionsfeldgruppen und Kontrollkästchengruppen
- Erfahren Sie, wie Sie Formularfelder mithilfe von CSS-Selektoren basierend auf Feldtypen und Feldnamen formatieren, um eine konsistente oder eindeutige Formatierung auf der Grundlage von Anforderungen zu ermöglichen
Grundlagen zu Formularfeldtypen
Bevor wir uns mit der Formatierung befassen, sollten wir die allgemeinen Formularfeldtypen besprechen, die vom adaptiven Formularbaustein unterstützt werden:
- Eingabefelder: Dazu gehören Texteingaben, E-Mail-Eingaben, Kennworteingaben und mehr
- Kontrollkästchen-Gruppen: Dient zur Auswahl mehrerer Optionen.
- Optionsfeldgruppen: Dient zur Auswahl nur einer Option aus einer Gruppe
- Dropdown-Listen: werden auch als Auswahlfelder bezeichnet und zur Auswahl einer Option aus einer Liste verwendet
- Bedienfelder/Container: Dient zur Gruppierung verwandter Formularelemente
Standard-Formatierungsgrundsätze
Das Verstehen grundlegender CSS-Konzepte vor der Formatierung bestimmter Formularfelder ist von entscheidender Bedeutung:
- Auswahlen: Mit einer CSS-Auswahl können Sie bestimmte HTML-Elemente für die Formatierung auswählen. Sie können Element-, Klassen- oder ID-Selektoren verwenden
- Eigenschaften: CSS-Eigenschaften definieren das visuelle Erscheinungsbild von Elementen. Zu den gebräuchlichen Eigenschaften für die Formatierung von Formularfeldern gehören Farbe, Hintergrundfarbe, Rahmen, Abstand, Rand und mehr
- Box-Modell: Das CSS-Box-Modell beschreibt die Struktur von HTML-Elementen als von Abstand, Rahmen und Rändern umgebenen Inhaltsbereich
- Flexbox/Grid: CSS Flexbox- und Grid-Layouts sind leistungsstarke Tools zum Erstellen responsiver und flexibler Designs
Formatieren eines Formulars für den adaptiven Formularbaustein
Der adaptive Formularbaustein bietet eine standardisierte HTML-Struktur, die die Auswahl und Formatierung von Formularkomponenten vereinfacht:
-
Standardstile aktualisieren: Sie können die Standardstile eines Formulars ändern, indem Sie die
/blocks/form/form.css
Datei bearbeiten. Diese Datei bietet eine umfassende Formatierung für ein Formular, das mehrstufige Assistentenformulare unterstützt. Der Schwerpunkt liegt auf der Verwendung benutzerdefinierter CSS-Variablen für eine einfache Anpassung, Wartung und einheitliche Formatierung in allen Formularen. Anweisungen zum Hinzufügen des adaptiven Formularbausteins zu Ihrem Projekt finden Sie unter Erstellen eines Formulars. -
Anpassung: Verwenden Sie die
forms.css
als Grundlage und passen Sie sie an, um das Erscheinungsbild Ihrer Formularkomponenten zu ändern und sie visuell ansprechend und benutzerfreundlich zu gestalten. Die Dateistruktur fördert die Organisation und verwaltet Stile für Formulare, wodurch konsistente Designs auf Ihrer Website gefördert werden.
Aufschlüsselung der forms.css-Struktur
-
Globale Variablen: Diese Variablen (
--variable-name
) werden auf der:root
-Ebene definiert und speichern Werte, die im gesamten Stylesheet verwendet werden, um die Konsistenz und einfache Aktualisierung zu gewährleisten. Diese Variablen definieren Farben, Schriftgrößen, Abstände und andere Eigenschaften. Sie können Ihre eigenen globalen Variablen deklarieren oder vorhandene ändern, um den Stil des Formulars zu ändern. -
Universelle Auswahlstile: Die
*
-Auswahl stimmt mit jedem Element im Formular überein, wodurch sichergestellt wird, dass Stile standardmäßig auf alle Komponenten angewendet werden, einschließlich der Festlegung der Eigenschaftbox-sizing
aufborder-box
. -
Formatierung von Formularen: Dieser Abschnitt konzentriert sich auf die Formatierung von Formularkomponenten mithilfe der Auswahlen für das Targeting bestimmter HTML-Elemente. Sie definiert Stile für Eingabefelder, Textbereiche, Kontrollkästchen, Optionsfelder, Dateieingaben, Formularbeschriftungen und Beschreibungen.
-
Formatierung des Assistenten (falls zutreffend): Dieser Abschnitt dient der Formatierung des Assistenten-Layouts, eines aus mehreren Schritten bestehenden Formulars, in dem jeder Schritt einzeln angezeigt wird. Sie definiert Stile für den Assistenten-Container, Feldsätze, Legenden, Navigationsschaltflächen und responsive Layouts.
-
Medienabfragen: Diese bieten Stile für unterschiedliche Bildschirmgrößen und passen das Layout und die Formatierung entsprechend an.
-
Verschiedene Stile: In diesem Abschnitt werden Stile für Erfolgs- oder Fehlermeldungen, Bereiche für Datei-Uploads und andere Elemente behandelt, auf die Sie in einem Formular stoßen können.
Komponentenstruktur
Der adaptive Formularbaustein bietet eine konsistente HTML-Struktur für verschiedene Formularelemente, wodurch Formatierungen und die Verwaltung vereinfacht werden. Sie können die Komponenten mithilfe von CSS für Formatierungszwecke bearbeiten.
Allgemeine Komponenten (außer Dropdown-Listen, Optionsfeldgruppen und Kontrollkästchengruppen):
Alle Formularfelder mit Ausnahme von Dropdown-Menüs, Optionsfeldgruppen und Kontrollkästchen-Gruppen haben die folgende HTML-Struktur:
code language-html |
---|
|
-
Klassen: Das div-Element verfügt über mehrere Klassen, die auf bestimmte Elemente und die Formatierung abzielen. Sie benötigen die Klassen
{Type}-wrapper
oderfield-{Name}
zum Entwickeln einer CSS-Auswahl, um ein Formularfeld zu formatieren:- {Type}: Identifiziert die Komponente nach Feldtyp. Beispiel: Text (Text-Wrapper), Zahl (Zahl-Wrapper), Datum (Datum-Wrapper)
- {Name}: Identifiziert die Komponente anhand des Namens. Der Name des Felds darf nur alphanumerische Zeichen enthalten. Mehrere aufeinander folgende Bindestriche im Namen werden durch einen einzelnen
(-)
ersetzt, und Anfangs- und Endstriche in einem Feldnamen werden entfernt. Beispiel: Vorname (field-first-name field-wrapper) - {FieldId}: Dies ist eine eindeutige Kennung für das Feld, die automatisch generiert wird
- {Required}: Ein boolescher Wert, der angibt, ob das Feld erforderlich ist
-
Beschriftung: Das
label
-Element liefert beschreibenden Text für das Feld und verknüpft es mit dem Eingabeelement unter Verwendung desfor
-Attributs -
Eingabe: Das
input
-Element definiert den einzugebenden Datentyp. Beispiel: Text, Zahl, E-Mail -
Beschreibung (Optional): Das
div
mit der Klassefield-description
bietet zusätzliche Informationen oder Anweisungen für den Benutzer
Beispiel einer HTML-Struktur
code language-html |
---|
|
code language-css |
---|
|
.{Type}-wrapper
: Wählt das äußerediv
-Element basierend auf dem Feldtyp als Ziel aus. Beispielsweise ist.text-wrapper
auf alle Textfelder ausgerichtet.field-{Name}
: Wählt das Element weiter auf Grundlage des spezifischen Feldnamens aus. Beispielsweise wählt.field-first-name
das Textfeld „Vorname“ als Ziel aus. Diese Auswahl kann für das Abzielen auf Elemente mit der Klasse „field-{Name}“ verwendet werden. Sie müssen jedoch vorsichtig sein. In diesem speziellen Fall wäre es für die Formatierung von Eingabefeldern nicht hilfreich, da nicht nur die Eingabe selbst, sondern auch die Titel- und Beschreibungselemente ausgewählt würden. Es wird empfohlen, spezifischere Selektoren zu verwenden, wie Sie sie zum Targeting von Texteingabefeldern haben (.text-wrapper input)
Beispiel einer CSS-Auswahl für allgemeine Komponenten
code language-css |
---|
|
Dropdown-Komponente
Bei Dropdown-Menüs wird das select
-Element anstelle des input
-Elements verwendet:
code language-html |
---|
|
Beispiel einer HTML-Struktur
code language-html |
---|
|
code language-css |
---|
|
Optionsfeldgruppen
Ähnlich wie bei Dropdown-Komponenten haben Optionsfeldgruppen ihre eigene HTML- und CSS-Struktur:
code language-html |
---|
|
HTML-Strukturbeispiel
code language-html |
---|
|
- Abzielen auf den Feldsatz
code language-css |
---|
|
Dieser Selektor wählt alle Feldsätze mit dem Klassen-Optionsfeldgruppen-Wrapper aus. Dies wäre nützlich, um allgemeine Stile auf die gesamte Optionsfeldgruppe anzuwenden.
- Targeting von Optionsfeldbezeichnungen
code language-css |
---|
|
- Targeting aller Optionsfeldbezeichnungen innerhalb eines bestimmten Feldsatzes basierend auf seinem Namen
code language-css |
---|
|
Kontrollkästchengruppe
code language-html |
---|
|
HTML-Strukturbeispiel
code language-html |
---|
|
-
Targeting des äußeren Wrappers: Diese Auswahl wählt die äußersten Container von Optionsfeld- und Kontrollkästchengruppen als Ziel aus, sodass Sie allgemeine Stile auf die gesamte Gruppenstruktur anwenden können. Dies ist nützlich zum Festlegen von Abstand, Ausrichtung oder anderen Layout-bezogenen Eigenschaften.
code language-css /* Targets radio group wrappers */ .radio-group-wrapper { margin-bottom: 20px; /* Adds space between radio groups */ } /* Targets checkbox group wrappers */ .checkbox-group-wrapper { margin-bottom: 20px; /* Adds space between checkbox groups */ }
-
Bezeichnungen der Zielgruppe: Diese Auswahl wählt das
.field-label
-Element sowohl in Optionsfeld- als auch in Kontrollkästchengruppen-Wrappern als Ziel aus. Dadurch können Sie die Beschriftungen speziell für diese Gruppen formatieren und sie ggf. auffälliger gestalten.code language-css .radio-group-wrapper legend, .checkbox-group-wrapper legend { font-weight: bold; /* Makes the group label bold */ }
-
Targeting einzelner Eingaben und Beschriftungen: Diese Auswahl bietet eine präzisere Kontrolle über einzelne Optionsfelder, Kontrollkästchen und die zugehörigen Beschriftungen. Sie können diese verwenden, um Größe und Abstand anzupassen oder spezifischere visuelle Stile anzuwenden.
code language-css /* Styling radio buttons */ .radio-group-wrapper input[type="radio"] { margin-right: 5px; /* Adds space between the input and its label */ } /* Styling radio button labels */ .radio-group-wrapper label { font-size: 15px; /* Changes the label font size */ } /* Styling checkboxes */ .checkbox-group-wrapper input[type="checkbox"] { margin-right: 5px; /* Adds space between the input and its label */ } /* Styling checkbox labels */ .checkbox-group-wrapper label { font-size: 15px; /* Changes the label font size */ }
-
Anpassen des Erscheinungsbilds von Optionsfeldern und Kontrollkästchen: Diese Methode blendet die Standardeingabe aus und verwendet die Pseudo-Elemente
:before
und:after
, um benutzerdefinierte Visualisierungen zu erstellen, die das Erscheinungsbild basierend auf dem Status „aktiviert“ ändern.code language-css /* Hide the default radio button or checkbox */ .radio-group-wrapper input[type="radio"], .checkbox-group-wrapper input[type="checkbox"] { opacity: 0; position: absolute; } /* Create a custom radio button */ .radio-group-wrapper input[type="radio"] + label::before { /* ... styles for custom radio button ... */ } .radio-group-wrapper input[type="radio"]:checked + label::before { /* ... styles for checked radio button ... */ } /* Create a custom checkbox */ /* Similar styling as above, with adjustments for a square shape */ .checkbox-group-wrapper input[type="checkbox"] + label::before { /* ... styles for custom checkbox ... */ } .checkbox-group-wrapper input[type="checkbox"]:checked + label::before { /* ... styles for checked checkbox ... */ }
Bedienfeld-/Container-Komponenten
code language-html |
---|
|
Beispiel einer HTML-Struktur
code language-html |
---|
|
- Das fieldset-Element dient als Bedienfeld-Container mit dem Klassen-Bedienfeld-Wrapper und zusätzlichen Klassen zur Gestaltung basierend auf dem Bedienfeldnamen (Feldanmeldung).
- Das legend-Element (<legend>) dient als Bedienfeldtitel mit dem Text „Anmeldeinformationen“ und der Klassenfeldbezeichnung. Das data-visible="false"-Attribut kann mit JavaScript verwendet werden, um die Sichtbarkeit des Titels zu steuern.
- In diesem Feldsatz stehen mehrere .{Type}-Wrapper-Elemente (in diesem Fall „.text-wrapper“ und „.password-wrapper“x) für einzelne Formularfelder im Bedienfeld.
- Jeder Wrapper enthält eine Bezeichnung, ein Eingabefeld und eine Beschreibung, ähnlich wie bei den vorherigen Beispielen.
- Targeting des Bedienfelds:
code language-css |
---|
|
- Die
.panel-wrapper
-Auswahl gestaltet alle Elemente mit dem Klassenbedienfeld-Wrapper, wodurch ein einheitlicher Look für alle Bedienfelder entsteht.
- Targeting des Bedientitels:
code language-css |
---|
|
- Die
.panel-wrapper legend
-Auswahl gestaltet das legend-Element im Bedienfeld, sodass der Titel optisch hervorgehoben wird.
- Targeting einzelner Felder im Bedienfeld:
code language-css |
---|
|
- Die Auswahl
.panel-wrapper .{Type}-wrapper
wählt alle Wrapper mit der Klasse.{Type}-wrapper
innerhalb des Bedienfelds als Ziel aus, sodass Sie den Abstand zwischen Formularfeldern festlegen können.
- Targeting bestimmter Felder (optional):
code language-css |
---|
|
- Mit diesen optionalen Auswahlen können Sie bestimmte Feld-Wrapper innerhalb des Bedienfelds als Ziel auswählen, um einen eindeutigen Stil zu ermöglichen, z. B. zur Hervorhebung des Felds „Benutzername“.
Wiederholbares Bedienfeld
code language-html |
---|
|
Beispiel einer HTML-Struktur
code language-html |
---|
|
Jedes Bedienfeld weist dieselbe Struktur wie das Beispiel eines einzelnen Bedienfelds auf, allerdings mit zusätzlichen Attributen:
-
data-repeatable="true": Dieses Attribut gibt an, dass das Bedienfeld dynamisch mit JavaScript oder einem Framework wiederholt werden kann.
-
Eindeutige IDs und Namen: Jedes Element im Bedienfeld verfügt über eine eindeutige ID (z. B. name-1, email-1) und ein eindeutiges name-Attribut, das auf dem Index des Bedienfelds basiert (z. B. nname="contacts[0].name"). Dies ermöglicht eine korrekte Datenerfassung bei der Übermittlung mehrerer Bedienfelder.
- Targeting aller wiederholbaren Bedienfelder:
code language-css |
---|
|
Die Auswahl gestaltet alle wiederholbaren Bedienfelder und sorgt so für ein einheitliches Look-and-Feel.
- Targeting einzelner Felder in einem Bedienfeld:
code language-css |
---|
|
Diese Auswahl gestaltet alle Feld-Wrapper in einem wiederholbaren Bedienfeld, wobei ein konsistenter Abstand zwischen Feldern beibehalten wird.
- Targeting bestimmter Felder (in einem Bedienfeld):
code language-css |
---|
|
Dateianhang
code language-html |
---|
|
Beispiel einer HTML-Struktur
code language-html |
---|
|
- Das class-Attribut verwendet den angegebenen Namen für den Dateianhang (claim_form).
- Die id- und name-Attribute des Eingabeelements stimmen mit dem Dateianhangsnamen (claim_form) überein.
- Der Abschnitt „files-list“ ist zunächst leer. Er wird dynamisch mit JavaScript aufgefüllt, wenn Dateien hochgeladen werden.
- Targeting der gesamten Dateianhangskomponente:
code language-css |
---|
|
Diese Auswahl gestaltet die gesamte Dateianhangskomponente, einschließlich Legende, Ziehbereich, Eingabefeld und Liste.
- Targeting bestimmter Elemente:
code language-css |
---|
|
Mit diesen Auswahlen können Sie verschiedene Teile der Dateianhangskomponente individuell gestalten. Sie können die Stile entsprechend Ihren Design-Voreinstellungen anpassen.
Formatieren von Komponenten
Sie können Formularfelder nach dem jeweiligen Typ ({Type}-wrapper
) oder nach einzelnen Namen (field-{Name}
) gestalten. Dies ermöglicht eine präzisere Steuerung und Anpassung des Erscheinungsbilds Ihres Formulars.
Formatierung basierend auf Feldtyp
Sie können CSS-Auswahlen verwenden, um bestimmte Feldtypen als Ziel auszuwählen und Stile konsistent anzuwenden.
code language-html |
---|
|
Beispiel einer HTML-Struktur
code language-html |
---|
|
-
Jedes Feld wird in ein
div
-Element mit mehreren Klassen eingebettet:{Type}-wrapper
: Identifiziert den Feldtyp. Beispiel:form-text-wrapper
,form-number-wrapper
,form-email-wrapper
.field-{Name}
: Identifiziert das Feld anhand seines Namens. Beispiel:form-name
,form-age
,form-email
.field-wrapper
: Eine allgemeine Klasse für alle Feld-Wrapper.
-
Das Attribut
data-required
gibt an, ob das Feld erforderlich oder optional ist. -
Jedes Feld verfügt über eine entsprechende Beschriftung, ein Eingabeelement und potenzielle zusätzliche Elemente wie Platzhalter und Beschreibungen.
code language-css |
---|
|
Formatierung basierend auf Feldnamen
Sie können auch einzelne Felder nach Namen als Ziel auswählen, um eindeutige Stile anzuwenden.
code language-html |
---|
|
Beispiel einer HTML-Struktur
code language-html |
---|
|
code language-css |
---|
|
Diese CSS-Datei wählt alle Eingabeelemente als Ziel aus, die sich in einem Element mit der Klasse field-otp
befinden. Die HTML-Struktur Ihres Formulars entspricht den Konventionen des adaptiven Formularblocks. Dies bedeutet, dass ein mit der Klasse „field-otp“ markierter Container das Feld mit dem Namen „otp“ enthält.
Siehe auch
- Erste Schritte mit Edge Delivery Services für AEM Forms
- Erstellen eines Formulars mit Google Tabellen oder Microsoft Excel
- Einrichten von Google Tabellen- oder Microsoft Excel-Dateien, um Daten zu akzeptieren
- Veröffentlichen des Formulars und Starten der Datenerfassung
- Anpassen des Erscheinungsbilds von Formularen
- Hinzufügen wiederholbarer Abschnitte zu einem Formular
- Anzeigen einer benutzerdefinierten Dankesnachricht nach der Formularübermittlung
- Komponenten von adaptiven Formularblöcken und ihre Eigenschaften
- Verwenden des Formularübermittlungsdiensts