Místa a formulář
Poslední část je výběr míst s rezervačním formulářem. Otevřete ho tak, že v náhledu zvolíte představení.
Místa. Skript vytvoří 40 tlačítek se třídou misto, prodaným přidá obsazene a těm, která si návštěvník vybere, vybrane. Je to stejná situace jako u tlačítek dnů, takže má i stejné řešení: ve vrstvě components základní vzhled v .misto a za ním vzhled stavů, který nad ním vyhraje:
.misto {
@apply rounded-lg border border-stone-300 bg-white py-2 text-sm font-semibold transition-colors enabled:cursor-pointer enabled:hover:border-noc focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-noc;
}
.obsazene {
@apply cursor-not-allowed bg-stone-200 text-stone-400 line-through;
}
.vybrane {
@apply border-zlata bg-zlata text-noc;
}Obsazená místa jsou neaktivní, takže enabled: nechá ruku a rámeček při najetí myší jen volným místům, jako ve cvičení Neaktivní tlačítka. Obsazená místa jsou navíc přeškrtnutá, aby se dala snadno rozeznat, i když někdo špatně rozlišuje barvy. Místa jsou zase v mřížce s 8 sloupci, teď se třídami grid grid-cols-8 gap-2, a max-w-md mřížce nedovolí roztáhnout se přes širokou obrazovku.
Formulář. Preflight polím vzal rámečky, takže potřebují vzhled jako ve cvičení Vzhled formulářových polí a obrys, když mají fokus. Ve formuláři dejte:
formtřídumax-w-mda každému ze dvou odstavců s polemmt-4,- popiskům (
label)block font-semibold: jako bloky posunou svá pole na další řádek, - polím
mt-1 w-full rounded-lg border border-stone-300 bg-white px-3 py-2 focus:outline-2 focus:outline-zlata, - třem chybovým hláškám místo třídy
chybatřídytext-sm text-red-700, - tlačítku Rezervovat vzhled tlačítka z úvodní stránky: jeho třídy s
mt-4apy-2místomt-8apy-3, bezinline-block(tlačítko už ho má) a navíc scursor-pointer, - potvrzení
mt-4 font-semibold text-green-700.
Vaše vstupenky. Položky seznamu vytváří skript, stejně jako tlačítka Vybrat místa, takže třídy dostanou ve skriptu: řádkem s li.className ve funkci zobrazVstupenky().
Jak psát:
Pokyny
- 1
Do bloku
@layer componentsvestyle.csspřidejte za.aktivnitři pravidla z příkladu výše. Vprogram.htmldejte#mistatřídymy-4 grid max-w-md grid-cols-8 gap-2, výběru míst (#vyber-mist) vzhled karty,mt-10 rounded-2xl border border-stone-200 bg-white p-6, a jeho nadpisufont-display text-2xl font-bold text-noc. V náhledu si vyberte pár míst. - 2
Nastylujte formulář podle seznamu výše. Pak klikněte na Rezervovat s prázdnými poli, ať vidíte chybové hlášky, a klikněte do polí.
- 3
Sekci Vaše vstupenky dejte třídu
mt-10, jejímu nadpisu třídy nadpisu výběru míst a seznamumt-4 flex flex-col gap-2. Ve funkcizobrazVstupenky()dejte každé položce třídy, například tímto řádkem pod tím, který položku vytváří:li.className = "rounded-lg border border-stone-200 bg-white px-4 py-2";