Problém příliš úzkých tlačítek [příspěvek v archivu]

Když dgx napsal výtečný a zajímavý příspěvek o problémech s příliš širokými tlačítky, hned jsem si vzpomněl na problém přesně opačný, s nímž se setkávám až nepříjemně často. To když se někdo snaží udělat tlačítka úzká úplně na doraz a zapomíná přitom, že operační systém či prohlížeč mohou používat téma/skin, vykreslující standardní formulářové prvky úplně jinak, než si nebohý autor představuje. U tlačítek tak třeba může být po stranách textu potřeba výrazně větší prostor kvůli jejich zaoblení.

ukázzky formátování příliš úzkých tlačítek Ukázky jsou z webů kava.cz a alza.cz v prohlížečích Safari a Firefox na Mac OS X. Standardní oblá tlačítka pocházející z grafického rozhraní (GUI) Aqua v Mac OS X používá kromě Safari i mnoho dalších prohlížečů (např. Camino, prohlížeč na jádře Gecko). Běžný Firefox ovšem systémové GUI nepoužívá, všechny formulářové prvky vykresluje sám (proto také působí na macu poněkud cize a nepatřičně) a tlačítka zobrazuje vždy hranatá. Kdyby byl v těchto případech použit prvek <button>, vypadala by tlačítka na všech ukázkách stejně a byla by použitelná ve všech prohlížečích.

Řešení je tedy očekávaně jednoduché: nedefinujte prvkům <input type="submit"> šířku, nechejte to na prohlížeči. Pokud je opravdu životně nezbytné šířku nějak omezit, definujte ji rozhodně v em a počítejte s dostatečnou rezervou (přičtěte 1–2em). A na tlačítkové specialitky, jako netypické tvary, tlačítka s obrázkem, velmi úzká tlačítka či vyžadované exaktní rozměry, používejte prvek <button> – přesně kvůli tomu v HTML existuje.

Standardní formulářové tlačítko <input> může prohlížeč vykreslovat i velmi netypicky a nemusí ani umožnit jeho stylování, ale tlačítko <button> se musí vykreslit jako obdélník a k jakémukoli stylování je vždy ochotno.

Petr Staníček, 21. 5. 2007 000 16.04 • Rubrika: Webdesign22 komentářů u textu s názvem Problém příliš úzkých tlačítek

22 komentářů k článku »Problém příliš úzkých tlačítek«

[1] Vložil(a): Martin Hassman 21. 5. 2007 v 17.10

Firefoxu 3 uz tak hranaty nebude. Zrovna nedavno jsem JasnePace delal srovnavaci screenshoty http://jasnapaka.bloguje.cz/…mac-os-x.php

[2] Vložil(a): Pavel Kout 21. 5. 2007 v 20.10

[1] Hezký. Ještě kdyby doplnili podporu Keychains Access a dalo by se to používat.

[3] Vložil(a): dgx 21. 5. 2007 v 23.53

Tlačítka <button> bohužel trpí zase jinými nedostatky. V některých prohlížečích se neodešle jméno tlačítka, takže nelze identifikovat, které tlačítko bylo stisknuto, v jiných je zase nedosažitelné prostřednictvím klávesnice.

Fakt je, že už je to pár let, co jsem experimentoval (a zavrhl) tento element, možná už je situace lepší.

Co se mi naopak na <button> líbí, že se obvykle chová jako skutečné tlačítko včetně efektu „zamáčknutí“. Takže i když jeho obsah tvoří pouze bitmapa, je výsledek efektnější, než <input type="image">.

Ale každopádně dobrý tip, nedávat tlačítkům šířku.

[4] Vložil(a): Pavel Kout 22. 5. 2007 v 12.48

[3] Já zase, Davide, tenhle element nepoužíval, protože ho kdysi jeden důležitý browser neuměl (jasně, že to bylo ještě v době, kdy byly Hradčany ze dřeva) a nějak mi to zůstalo :-)

[5] Vložil(a): marek 22. 5. 2007 v 16.45

na druhou stranu to je docela hezký, mít kulaté tlačítko a v něm napsáno jenom O :)

[6] Vložil(a): dgx 22. 5. 2007 v 17.33

[5] přesně do chvíle, než předpokládané „OK“ případně „ODESLAT“ se vybarví jako „ODSTRANIT“ :-)

[7] Vložil(a): Vilém Málek 22. 5. 2007 v 23.29

Dokud nebude GUI formulářů plně definovatelné prostřednictvím CSS, do té doby bude ve webdesignu, bordel. Bez prominutí.

Kdo přišel na tak neskutečně nereálný požadavek shody GUI formulářů webové stránky s GUI operačního systému? Jak může být osoba, která má každý program v počítači naskinován jinak, zmatena odlišným GUI webových stránek? Nota bene když každá ta webová stránka je úplně, ale úplně jiná?

Já bych to celý zakázal, tyhlencty weby. A vůbec.

[8] Vložil(a): Pixy 23. 5. 2007 v 0.22

[7] > Jak „každý program naskinován jinak“? Jediné dva programy, co znám, které mají na macu formulářové prvky naskinovány odlišně, jsou pouze a právě Firefox a Opera, jejichž autoři se prostě rozhodli všechno si udělat nestandardně a po svém. A jestliže jsem odevšad zvyklý, jak vypadá tlačítko, jak vypadá selectbox, checkbox, radio, tak ty prvky v podobě prezentované FF/Operou nemusím ani poznat, notabene že mě ruší…

[9] Vložil(a): Pavel Kout 23. 5. 2007 v 1.07

[8] Jenže to se holt špatně vysvětluje tomu, kdo na to není zvyklý.

[10] Vložil(a): dgx 23. 5. 2007 v 2.32

[9] pod Windows je to stejné. Snad až na ten Firefox, který naštěstí použivá systémové GUI. Liší se ještě některé z programů psaných v Javě, z čehož pramení i mé předsudky vůči Javovým aplikacím a nechuť je používat.

[11] Vložil(a): Roj 23. 5. 2007 v 17.23

Uprimne receno, nez ty formulare me tedy fascinuje jina vec, kterou povazuju za zazrak.

Jak dosahnes prizpusobeni toho mensiho divu z dvojice (positiv/negativ), aby byl stejne dlouhy jako ten vetsi… nic mi nerikej, jdu se na to vrhnout…

[12] Vložil(a): Vilém Málek 23. 5. 2007 v 19.25

[8][10] Nevím, jestli jste si toho, přátelé, všimli, ona je to už stará věc – před několika léty bylo v módě umožnit uživatelům programu měnit jeho „skin“, tedy upravovat si jeho vzhled podle svého. Dnes už to není tahák, ale i tak má většina programů tuto možnost v sobě zabudovánu. Prakticky jakýkoli program může mít GUI odlišné od toho systémového, proto jsou tyhle výkřiky a nesystémovém GUI v prohlížečích nesmyslné.

(Například já používám jako prohlížeč Maxthon na jádře MSIE ve skynu Mac OS – pohodlí, funkce a přátelský vzhled pěkně pohromadě ;-)

[13] Vložil(a): dgx 23. 5. 2007 v 21.36

[12] „prakticky jakýkoliv“ = Opera a Winamp? Nebo možná jen nepoužívám prakticky žádné programy :-)

[14] Vložil(a): Roj 23. 5. 2007 v 22.52

[13] Mozilla taky, ovsem jediny opravdu pouzitelny je default classic „skin“. Nikoliv uz „default modern“!

[15] Vložil(a): Pavel Kout 24. 5. 2007 v 20.23

[14] Tak to prr, Roji — ten moderní skin ve mně vyvolává nostalgické vzpomínky a téměř slzu v oku. Asi stárnu, ale z toho samého důvodu se těším na Netscape 9 — prý bude i pro Mac OS X a Linux, nejen pro Win32 jako Netscape 8.

[16] Vložil(a): Roj 24. 5. 2007 v 22.51

[15] Pokud mas systemove barvy defaultni, nemas problem. Ja ano.

[17] Vložil(a): CC 25. 5. 2007 v 8.29

V tuto chvili tato stranka pouziva pouze input. Jak funguje button a input pri vypnutem JS?

[18] Vložil(a): Pixy 25. 5. 2007 v 9.34

[17] JS nemá na nic vliv, jak <input>, tak <button> jsou standardní prvky HTML a jsou plně funkční i bez jakéhokli skriptování. Jestliže místo <input type="submit"> použijete <button type="submit">, bude chování úplně stejné, lišit se bude jen formátování. Aneb jak píše specifikace HTML 4:

Buttons created with the BUTTON element function just like buttons created with the INPUT element, but they offer richer rendering possibilities: the BUTTON element may have content. For example, a BUTTON element that contains an image functions like and may resemble an INPUT element whose type is set to „image“, but the BUTTON element type allows content. — Visual user agents may render BUTTON buttons with relief and an up/down motion when clicked, while they may render INPUT buttons as „flat“ images.

[19] Vložil(a): Jarda 25. 5. 2007 v 22.07

Moc tomu nerozumím, u nějakého formuláře na komentáře to beru, že stylování prvků zbytečné, ale u aplikací (resp. web aplikací), potřebuji mít pod kontrolou vizuální stránku věci už z pohledu uživatele. Dobře tak třeba červené tlačítko smazat je možná pro puristu zhýralost, ale už ušetřilo mnoho dat od zkázy :o)

Na druhou stranu, proč by mělo být třeba tlačítko shodné se systémovým, nevidím jediný důvod, je to prvek stránky jako každý jiný a chci ho mít pod kontrolou vzhledem k jeho „polymorfismu“.

Rad bych pouzival jen „button“, ale vzhledem k nejednoznacnemu chovani to casto nejde, skoda. :o(

[20] Vložil(a): Pixy 25. 5. 2007 v 23.29

[19] Whoa! Nejednoznačné chování <button>? A jaképak? Něco závažnějšího než to, že tlačítko coby <input> se vám někde červeně nezobrazí vůbec, ani kdybyste se na hlavu stavěl (viz třeba Safari či Camino), zatímco coby <button> spolehlivě? Opravdu se snažíte tvrdit, že mezi formátováním <button> jsou podle vás větší rozdíly než v zobrazování <input>?

A jestli nechápete, proč by měly být formulářové prvky shodné se systémovými, tak to je trochu smutné. Víte, uživatel musí především poznat, co který prvek dělá, že a jak s ním může manipulovat. Když to přeženu, tak pokud je uživatel odjakživa, co dělá s počítačem, zvyklý, že třeba tlačítka vypadají jako průhledné skleněné koule, tak ho nemusí ani napadnout, že ten modrý trojúhelník je taky tlačítko a že by na něj měl kliknout. Pokud jste zvyklý dělat s Windows, tak cokoli, co se podobá tlačítku z Windows vám přijde dobré. Ale jsou jiná GUI, na které jsou lidi zvyklí, a tam už to mnohým tak dobré připadat nemusí – nejmarkantnější je to vždycky se select boxy, ty jsou na macu ve windows tak odlišné, že už jsem byl svědkem mnoha nepochopení a tápání. A jsou GUI a témata mnohem divočejší a při stylování formulářových pak můžete narazit na lecjaké podivnosti (Roj by mohl vyprávět)…

Považovat formulářové prvky za vlastnictví stránky má stejnou logiku jako si chtít dělat vlastní/odlišné GUI v každé aplikaci. Může se to zdát děsně cool, ale uživatele to ve skutečnosti příšerně prudí. Jednotné aplikační GUI má svůj zásadní smysl a nevěřil byste, co všechno s ním stojí a padá… Ale to je na dlouhou debatu a spory o kontrole designerů nad ovládacími prvky GUI (nejen ve webstránkách) jsou staré a asi věčné.

[21] Vložil(a): Jarda 26. 5. 2007 v 9.27

Pěkné ráno,
nechtěl jsem vyvolat nějaký „flame“. Ohledně chování, jsem myslel rozdíly na téma input vs. button a odesílání hodnot (jemné odskočení od grafiky k funkcionalitě). Tak mě napadá, že button vlastně vzniknul i proto, aby do něj šlo vkládat html a tedy i formátovat. Čili je to jediný formulářový prvek, který máme povoleno stylovat?!
Jinak ke stylování form prvků, souhlasím, že stylovat je je bohužel cesta do pekel a za těch cca 10 let co „se snažím psát weby“ jsem se o tom mockrát přesvědčil, ale stejně jsem nucen (většinou objednatelem) nějak graficky upravit aspoň label, button, fieldset. Řekl bych, že je to podobné jako se stylováním odkazů, možnosti nějaké jsou a jen někdo je využije až tak, že nepoznáte odkaz.
Nevím, téma mi přijde, jako bavit se jestli stylovat stránku nebo ne, vždyť CSS se chová také v různých implementacích různě a není nejlepší tedy pure web, abych nemátl uživatele? No to jsem trochu vyhrotil :-), ale přijde mi to analogické.
Myslíte, že neformátovat by se mělo i u intranetových aplikací, kde je zajištěno používání omezeného množství typů prohlížecích zařízení? (dotaz do pléna).
Pěkný prosluněný víkend bez mráčků všem!

[22] Vložil(a): zLOST 22. 6. 2007 v 15.58

[20] a ceho jsou formularovy prvky vlastnictvim, kdyz ne stranky na ktere se zobrazuji? tim padem se z GUI muzou prebirat fonty, barvicky, pozadi na desktopu a CSS muzem rovnou zrusit, ne?
Kdyz chci/potrebuju/mu­sim mit s nejakyma vlastnostma, tak je trosku na houby, kdyz mi to rozhodi aktualni skin u uzivatele, ne?
Takze bych mel krom testovani webu v ruznych prohlizecich a na ruznych platformach, jeste mel uvazovat o tom jak se to bude chovat u ruznych temat? To uz mi prijde malicko postaveny na hlavu.
Uznavam, ze jablickovsky default modry soupatka a dropdowny jsou pekny, ale vseho s mirou..

just my two cents..

Váš komentář

Upozornění: Pokud vás téma tohoto příspěvku nezajímá, nebaví, dotýká se vás či vás dokonce uráží, tak prosím odejděte a pokud možno se nadále ve vlastním zájmu dalším podobným vyhýbejte. Hlavně se to prosím nesnažte autorovi sdělovat v komentářích, takové příspěvky nikoho nezajímají a budou nejspíš vymazány. Totéž platí pro vaše názory na osobu autora, na jiné přispěvatele, mluvení z cesty, ze spaní či pod vlivem omamných látek a další podobné výlevy nesouvisející s tématem článku. Jinými slovy, toto je prostor soukromého blogu určený pro komentování příspěvku publikovaného výše, nikoli k chatování a volné diskusi. Děkuji za pochopení.

Abyste mohli komentovat, musíte se přihlásit.