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.

Vlastník

Zobrazeno 31 zpráv z 31.
//= Settings::TRACKING_CODE_B ?> //= Settings::TRACKING_CODE ?>
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.