Die Plätze und das Formular
Der letzte Teil ist die Platzwahl mit dem Buchungsformular. Wähle in der Vorschau eine Vorstellung, um sie zu öffnen.
Die Plätze. Das Skript erzeugt 40 Buttons mit der Klasse platz, und es fügt den verkauften belegt und den vom Besucher gewählten gewaehlt hinzu. Es ist dieselbe Situation wie bei den Tag-Buttons, also dieselbe Lösung: im Layer components das Grundaussehen in .platz und danach die Aussehen der Zustände, die sich dagegen durchsetzen:
.platz {
@apply rounded-lg border border-stone-300 bg-white py-2 text-sm font-semibold transition-colors enabled:cursor-pointer enabled:hover:border-nacht focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-nacht;
}
.belegt {
@apply cursor-not-allowed bg-stone-200 text-stone-400 line-through;
}
.gewaehlt {
@apply border-gold bg-gold text-nacht;
}Die belegten Plätze sind deaktiviert, deshalb behält enabled: die Hand und den Hover-Rahmen für die freien, wie in der Übung Deaktivierte Buttons. Die belegten Plätze sind außerdem durchgestrichen, damit man sie leicht unterscheidet, auch wenn man Farben schlecht sieht. Die Plätze stehen wieder in einem Grid mit 8 Spalten, jetzt mit grid grid-cols-8 gap-2, und max-w-md verhindert, dass sich das Grid über einen breiten Bildschirm ausbreitet.
Das Formular. Preflight hat den Feldern die Rahmen genommen, sie brauchen also ein Aussehen wie in der Übung Formularfelder gestalten und einen Rahmen, wenn sie den Fokus haben. Gib im Formular:
- dem
formdie Klassemax-w-mdund jedem der beiden Absätze mit einem Feldmt-4, - den Labels
block font-semibold: Als Blöcke setzen sie ihre Felder in die nächste Zeile, - den Feldern
mt-1 w-full rounded-lg border border-stone-300 bg-white px-3 py-2 focus:outline-2 focus:outline-gold, - den drei Fehlermeldungen
text-sm text-red-700anstelle ihrer Klassefehler, - dem Button Buchen das Aussehen des Buttons auf der Startseite: seine Klassen mit
mt-4undpy-2stattmt-8undpy-3, ohneinline-block(ein Button ist schon einer) und mitcursor-pointer, - der Bestätigung
mt-4 font-semibold text-green-700.
Deine Tickets. Die Einträge der Liste erzeugt das Skript, wie die Buttons Plätze wählen, sie bekommen ihre Klassen also im Skript: eine Zeile mit eintrag.className in zeigeTickets().
So schreibst du es:
Anweisungen
- 1
Füge in
style.cssdie drei Regeln aus dem Beispiel oben zum Block@layer componentshinzu, nach.aktiv. Gib inprogramm.html#plaetzedie Klassenmy-4 grid max-w-md grid-cols-8 gap-2, der Platzwahl (#platzwahl) das Aussehen einer Karte,mt-10 rounded-2xl border border-stone-200 bg-white p-6, und ihrer Überschriftfont-display text-2xl font-bold text-nacht. Wähle in der Vorschau ein paar Plätze. - 2
Gestalte das Formular wie in der Liste oben. Klicke dann mit leeren Feldern auf Buchen, um die Fehlermeldungen zu sehen, und klicke in die Felder.
- 3
Gib dem Abschnitt Deine Tickets die Klasse
mt-10, seiner Überschrift die Klassen der Überschrift der Platzwahl und der Listemt-4 flex flex-col gap-2. Gib inzeigeTickets()jedem Eintrag seine Klassen, zum Beispiel mit dieser Zeile unter der, die den Eintrag erzeugt:eintrag.className = "rounded-lg border border-stone-200 bg-white px-4 py-2";