Diskuze: Formulář - table vs. CSS
V předchozím kvízu, Online test znalostí HTML a CSS, jsme si ověřili nabyté zkušenosti z kurzu.
Zobrazeno 31 zpráv z 31.
K personalizaci obsahu a reklam, poskytování funkcí sociálních médií a analýze naší návštěvnosti využíváme soubory cookie. Informace o tom, jak náš web používáte, sdílíme se svými partnery pro sociální média, inzerci a analýzy. Partneři tyto údaje mohou zkombinovat s dalšími informacemi, které jste jim poskytli nebo které získali v důsledku toho, že používáte jejich služby.
Používáme nezbytné cookies pro fungování webu a s tvým souhlasem také analytické a marketingové cookies.
Zajišťují základní funkce, bezpečnost a služby, které sis vyžádal. Nelze je vypnout.
| Služba | Poskytovatel | Účel | Cookies a úložiště | Doba uložení |
|---|---|---|---|---|
| ITnetwork | ITnetwork | Provoz webu, relace, přihlášení a uložení nastavení cookies. | PHPSESSID, auth_token, sid, itn_consent_impression, __Host-itn_consent | Relace až 1 rok |
| Google Tag Manager | Správa značek a načítání měřicích nástrojů webu. | Žádné | Neukládá se | |
| Google Fonts | Načítání typografie webu. | Úložiště řízené poskytovatelem | Dle podmínek poskytovatele | |
| Google Hosted Libraries | Načítání potřebných knihoven a stylů webu. | Úložiště řízené poskytovatelem | Dle podmínek poskytovatele | |
| Google reCAPTCHA | Ochrana formulářů a webu před zneužitím. | _GRECAPTCHA, rc::a, rc::b, rc::c, rc::f | Relace až 180 dní | |
| YouTube | Přehrávání vloženého video obsahu. | localStorage, IndexedDB; cookies after playback interaction | Relace až trvalé úložiště | |
| Vimeo | Vimeo | Přehrávání vloženého video obsahu. | __cf_bm, _cfuvid, vuid, localStorage, IndexedDB | Relace až 2 roky |
| Facebook Login | Meta | Přihlášení pomocí účtu třetí strany. | Úložiště řízené poskytovatelem | Relace až 1 rok |
| GoPay | GoPay | Zpracování uživatelem vyžádané platby. | Úložiště řízené poskytovatelem | Dle podmínek poskytovatele |
Pomáhají nám porozumět používání webu a zlepšovat ho.
| Služba | Poskytovatel | Účel | Cookies a úložiště | Doba uložení |
|---|---|---|---|---|
| Google Analytics 4 | Měření návštěvnosti a používání webu. | _ga, _ga_* | Až 2 roky | |
| Microsoft Clarity | Microsoft | Měření návštěvnosti a používání webu. | _clck, _clsk, _cltk | Relace až 1 rok |
Slouží k měření kampaní, personalizaci reklamy a marketingové komunikaci.
| Služba | Poskytovatel | Účel | Cookies a úložiště | Doba uložení |
|---|---|---|---|---|
| Google Ads | Měření kampaní, reklama a remarketing. | _gcl_au, _gcl_ls | Relace až 90 dní | |
| Meta Pixel | Meta | Měření kampaní, reklama a remarketing. | _fbp, _fbc, localStorage | Až 90 dní |
| Sklik | Seznam.cz | Měření kampaní, reklama a remarketing. | retargeting, sid, szn:* | Relace až trvalé úložiště |
| LinkedIn Insight | Měření kampaní, reklama a remarketing. | bcookie, li_gc, lidc, __cf_bm | Relace až 1 rok | |
| Ecomail | Ecomail.cz | Měření kampaní, reklama a remarketing. | ecmid, Úložiště řízené poskytovatelem | Dle podmínek poskytovatele |
| Atribuce kampaní ITnetwork | ITnetwork | Přiřazení návštěvy a objednávky ke kampani. | campaign_clid[*], user_session_context | Až 1 rok |
V předchozím kvízu, Online test znalostí HTML a CSS, jsme si ověřili nabyté zkušenosti z kurzu.
Záleží jak složitý má formulář být, jak se často opakují rozložení atp.
Pokud budu mít formulář kde bude input na jméno a heslo, tak určitě tabulka nemá smysl.
Pokud bude formulář vždy stejné - 3 sloupce - lepší bude asi div a float.
Pokud však bude formulář, kde bude několik různých inputů, které jsou
skoro vždy stejně rozložené - třeba každý druhý řádek je stejný, tak
dám řádkům class a použiji tabulku. 
Já osobně používám tabulka jen jako tabulku, ne jako prostředek pro layout.
Chci jedno univerzální řešení. Zatím používám tabulku, můžu si s ní dělat pomocí colspanů co chci a dělá mi sloupce, což ve formu potřebuji. Říkám si ale, jestli by ten balast s tr a td nešel odstranit a udělat to jen přes CSSko.
No tak šlo by to, žejo, ale pokud používáš slučování dolu, tak to se dělá v CSS docela blbě, jelikož float ti to zajímavě zatrhává.
Podle mne je nejlepší seznam s odstraněnými puntíky. Text před chlívkem je ve spanu a v CSS má stanoven min-width.
To sice ano, ale CSS si musí poradit i s tímhle:
Pohlaví (x) Muž
( ) Žena
( ) UFO
V praxi by určitě vyvstalo spousta dalších případů, proto se ptám, jestli tu někdo dělá formuláře bez tabulek.
To se dá elegantně udělat jako seznam v seznamu. Vnitřní seznam má float:left vedle zmíněného spanu. Pokud se to nevejde vedle sebe, hezky se to zalomí.
Jo, ten seznam by to vyřešil. Ještě jsem viděl, že si lidé hackli br, aby dělalo clear. Ten form pak vypadal takhle:
<form>
<label><input><br>
<label><input><br>
<label><input>
</form>
To je prasárna, nejlépe používat třeba div se třídou clear. Tabulky zásadně nepoužívám, nejlépe (jak říkal Kit) je použít seznam. Já to používám co položka to "řádek tabulky", ty mohou obsahovat v celku cokoliv a jednotlivé "buňky" na sobě nejsou závislé, jako tomu je u table.
Můžeš plz poslat nějakou ukázku složitějšího formu?
To vypadá dobře i se to chová responzivně. Přemýšlím, jestli je potřeba ten vnější ul.
Ja som zvykol používať divy pre každú skupinu prvkov formulára, (napr.
<div class = "form-component">
<label for = "name-field"> Meno </label>
<input type = "text" id = "name-field" required />
<p class = "error-message" id = "name-error-message"> </p>
</div>
dalo sa s nimi výborne narábať,
kód bol celkom prehľadný a semantický (kedže každý "div" tvorí
samostatnú plochu vyhradenú pre ten konkrétny prvok formu),
dali sa tam ľahko začlenovať prípadné chybové hlášky pri validácii
atď
Vzhledem k tomu, že se jedná o seznam vstupních polí
formuláře, tak bych to tam to <ul> nechal. Tabulka to
není, definice také ne. Co bys tam dal jiného?
Myslím že místo těch labelů je lepší použít placeholder, vypadá to mnohem lépe.
Chtělo by to místo <div> najít nějakou vhodnější
sémantickou značku. Použil jsem <li>, protože je to
položka něčeho.
Placeholder je dobrá věc jako doplněk, ale label s ním nenahradíš.
Áno, vyzerá to lepšie,
lenže (z HTML5 špecifikácie):
Placeholder should not be used as an alternative to a label.”
Label bych použil pro případný výpis chyby při validaci, ale jinak mi
to nepřipadá lepší než placeholder,při použití placeholderu je to potom
takové uhlazené, naopak v případě labelu text vedle inputu nevypadá tak
dobře.
Proč myslíš že to nelze nahradit ?
Ve chvíli, kdy někdo vyplní formulář a chce si ho zkontrolovat, už nevidí, jestli omylem nepřehodil jméno a příjmení.
Lenže špecifikácia je náš kódex, a preto by sme sa jej mali
držať,
definícia labelu:
The <label> element represents a caption in a user interface.
HTML5 kladie dôraz na sémantickosť a správne využitie elementov,
na chybové hlásenia by sa určite hodil nejaký iný.
Naopak bych do placeholderu klidně dal string "* povinné pole".
Dobře, chápu, ale na druhou stranu když při na událost onchange v JS
vytvoříš funkci, která to ihned zvaliduje a vedle vypíše např: *"Jméno
je příliš krátké" * tak je mu jasné ve kterém inputu má být jméno a
kde něco jiného.
Kdo tam chce label, dá si tam label, komu se líbí placeholder tak to udělá
jinak, myslím že už pak záleží na vývojáři.
V podstate je jedno, čo sa použije na zobrazenie chybovej hlášky,
záleží len na vývojárovi, či chce mať kód v súlade s platnými
štandardmi 
V některých prohlížečích se placeholder vůbec nezobrazí. Podle specifikace ani nemusí. Prohlížeč totiž značky a atributy, které nezná, musí ignorovat. Uživatel pak neví, co má do toho pole vyplnit.
IMHO hlavně dělá placeholder a label úplně něco jiného. Ač se to zdá podobné.
Ano, dokonce ho zobrazí i prohlížeč, který vůbec nezná
<label>. Je to dáno tím, že je párový.
Já osobně to dělám třeba takto, zde nepoužívám seznam, protože se na to v tomto případě tak úplně nehodí.
Dá se samozřejmě natáhnout jak je potřeba, ty bloky udělat širší, ale pro pochopení myslím postačí.
Zobrazeno 31 zpráv z 31.
