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 Felder eines Formulars zu formatieren und so die visuelle Darstellung Ihrer Formulare und das Anwendererlebnis zu verbessern.
Der Baustein „Adaptives Formular“ sorgt für eine einheitliche Struktur für alle Formularfelder. Die konsistente Struktur erleichtert die Entwicklung der CSS-Auswahl zur Auswahl und Formatierung von Formularfeldern basierend auf Feldtyp und Feldnamen.
In diesem Dokument wird die HTML-Struktur für verschiedene Formularkomponenten beschrieben. Sie erhalten ein Verständnis dafür, wie Sie die CSS-Auswahlen für verschiedene Formularfelder erstellen, um Formularfelder in einem adaptiven Formularbaustein zu formatieren.
Am Ende des Artikels werden Sie Folgendes erreicht haben:
- Sie gewinnen ein Verständnis der Struktur der standardmäßigen CSS-Datei, die im adaptiven Formularbaustein enthalten ist.
- Sie gewinnen ein Verständnis der HTML-Struktur von Formularkomponenten, die vom adaptiven Formularbaustein bereitgestellt werden, einschließlich allgemeiner Komponenten und spezifischer Komponenten wie Dropdown-Listen, Optionsfeldgruppen und Kontrollkästchengruppen.
- Sie lernen, wie Sie Formularfelder mithilfe der CSS-Auswahlen basierend auf dem Feldtyp und den Feldnamen formatieren, was eine konsistente oder eindeutige Formatierung basierend auf Anforderungen ermöglicht.
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 usw.
- Kontrollkästchengruppen: Dienen zum Auswählen mehrerer Optionen.
- Optionsfeldgruppen: Dienen zum Auswählen einer einzelnen Option aus einer Gruppe.
- Dropdown-Listen: Werden auch als Auswahlfelder bezeichnet und dienen zum Auswählen einer Option aus einer Liste.
- Bedienfelder/Container: Dienen zum Gruppieren zugehöriger 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 die Elementauswahl, Klassenauswahl oder ID-Auswahl verwenden.
- Eigenschaften: CSS-Eigenschaften definieren das visuelle Erscheinungsbild von Elementen. Zu den allgemeinen Eigenschaften für die Formatierung von Formularfeldern gehören u. a. Farbe, Hintergrundfarbe, Rahmen, Abstand und Rand.
- Box-Modell: Das CSS-Box-Modell beschreibt die Struktur von HTML-Elementen als Inhaltsbereich, der von Abstand, Rahmen und Rändern umgeben ist.
- Flexbox/Raster: CSS Flexbox- und Raster-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:
-
Aktualisieren von Standardstilen: Sie können die Standardstile eines Formulars ändern, indem Sie die
/blocks/form/form.css file
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. -
Anpassen: Verwenden Sie die das Standard-
forms.css
als Basis und passen Sie es an, um das Look-and-Feel Ihrer Formularkomponenten zu ändern, sodass es visuell ansprechend und benutzerfreundlich ist. Die Dateistruktur fördert die Organisation und verwaltet Stile für Formulare, wodurch konsistente Designs auf Ihrer Website gefördert werden.
Aufschlüsselung der Struktur von forms.css
-
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 Formatierungen: In diesem Abschnitt werden Stile für Erfolgs- oder Fehlermeldungen, Datei-Upload-Bereiche 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-Listen, Optionsfeldgruppen und Kontrollkästchengruppen 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. Zum Beispiel: text (text-wrapper), number (number-wrapper), date (date-wrapper).
- {Name}: Identifiziert die Komponente anhand des Namens. Der Name des Felds darf nur alphanumerische Zeichen enthalten. Mehrere aufeinander folgende Gedankenstriche im Namen werden durch einen einzigen Bindestrich ersetzt
(-)
, und die Start- und Endabstände in einem Feldnamen werden entfernt. Zum Beispiel: first-name (field-first-name field-wrapper). - {FieldId}: Eine eindeutige Kennung für das Feld, die automatisch generiert wird.
- {Required}: Ein boolescher Wert, der angibt, ob das Feld erforderlich ist.
-
Titel: Das Element
label
liefert einen beschreibenden Text für das Feld und ordnet ihn dem Eingabeelement mithilfe desfor
-Attributs zu. -
Eingabe: Das
input
-Element definiert den einzugebenden Datentyp. Zum Beispiel : text, number, email. -
Beschreibung (optional):
div
mit der Klassefield-description
stellt zusätzliche Informationen oder Anweisungen für Benutzende bereit.
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. Zum Beispiel wählt.text-wrapper
alle Textfelder als Ziel aus..field-{Name}
: Wählt das Element weiter auf Grundlage des spezifischen Feldnamens aus. Zum Beispiel 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. Es ist jedoch wichtig, vorsichtig zu sein. In diesem speziellen Fall wäre es nicht hilfreich dafür, Eingabefelder zu formatieren, da nicht nur die Eingabe selbst, sondern auch die Titel- und Beschreibungselemente ausgewählt würden. Es wird empfohlen, spezifischere Auswahlen wie diejenigen zu verwenden, die für das Abzielen auf Texteingabefelder verfügbar sind (.text-wrapper-Eingabe).
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 |
---|
|
Im folgenden CSS sind einige Beispiele von CSS-Auswahlen für Dropdown-Komponenten aufgeführt.
code language-css |
---|
|
- Auswählen des Wrappers als Ziel: Die erste Auswahl (
.drop-down-wrapper
) wählt das äußere Wrapper-Element als Ziel aus, wodurch sichergestellt wird, dass die Stile auf die gesamte Dropdown-Komponente angewendet werden. - Flexbox-Layout: Flexbox ordnet Beschriftung, Dropdown-Liste und Beschreibung vertikal für ein sauberes Layout an.
- Beschriftungsformatierung: Die Beschriftung zeichnet sich durch eine fette Schriftstärke und einen leichten Rand aus.
- Formatierung der Dropdown-Liste: Das ausgewählte
select
-Element erhält einen Rahmen, einen Abstand und gerundete Ecken für einen hochwertigen Look. - Hintergrundfarbe: Für visuelle Harmonie wird eine konsistente Hintergrundfarbe festgelegt.
- Pfeilanpassung: Optionale Stile blenden den standardmäßigen Dropdown-Pfeil aus und erstellen einen benutzerdefinierten Pfeil mit einem Unicode-Zeichen und einer Positionierung.
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 (
) 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