Problém příliš úzkých tlačítek

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.

Salát s dýňovými semínky a uzeným lososem

Včerejšímu vývaru se dnes dostalo zasloužené satisfakce. Doplněn vodou asi na 1,5 l si prošel varem a snadno zatáhl vnořený žloutek z vajíčka. Z bílku s trochou vody a lžící mouky pak vytvořena placka, po rychlém usmažení nakrájena na úzounké, dlouhé nudličky. Do každého talíře přišel velejemný juliennne z mrkve a zelené cibulky, nakrájený plátek včerejšího krůtího masa, zmíněné „celestýnské“ nudle a polovina ztraceného žloutku, spolu s pár snítkami zelené petrželky pak vše přelito horkým, ještě bublajícím vývarem. Polévka, co postaví na nohy i mrtvého.

salát Druhý chod byl protentokrát studený. Základ byl pouze z ledového salátu a několika koleček zbylých cherry rajčat, posloužit ale mohla i jakákoli jiná salátová zelenina, baby špenát by tady byl přímo skvostný. Na dresing použita šťáva z půlky limety, půl lžičky dijonské hořčice, půl lžičky javorového sirupu (nebo medu) a trochy olivového oleje, vše vyšleháno do hladké béžové emulze. Soli netřeba, bude jinde. Základ byl lehce zaprášen troškou bazalky a posypán hrstkou nasucho opražených dýňových semínek. Druhá půlka limetky byla vymačkána na pár plátků uzeného lososa, ty navrstveny nahoru a doplněny pár kousky světlé parenice. Zastříknuto olivovým olejem a oběd pro dva hotov za pět minut. Kombinace křupavého salátu se sladkokyselným dresingem, opražených semínek, slaného lososa s limetkou je úžasný chuťový zážitek, při němž se zavírají oči!

Pozn.: Neuzenou parenici anebo (polo)oštiepok používám všude tam, kde lze použít mozarellu. Líp se shání, je levnější, déle vydrží a je přitom dostatečně chuťově neutrální (i když ne zcela planá jako mozarella).

Pošírovaná krůtí prsa s tuňákovou omáčkou

Inspirován Šárčiným vitello tonnato, pustil jsem se do další variace pro našeho přítele Krocana z Lednice a na Mrazáku. Avšak pouze volně inspirován: vitello tonnato se podává studené a omáčka je z majonézy, která se u nás prakticky nejí. Ostatně ani kapary v obchodě neměli… Ale především jsem chtěl teplé jídlo a ten základní nápad se mi natolik líbil, že jsem jej přetavil do následujícího pokrmu.

Takto dnes autor vařil:

Asi půlkilový kousek krůtích prsou hodlal pošírovat (zvolna vařit) ve vývaru (voda, ½ litru bílého vína, rozmarýna, 2 bobkové listy, 3 kuličky nového koření, sůl, hrst pórku, jedna mrkev, jedna cibule, kousek celeru, půlka pastináku/petrže­le), ale protože si vzpomněl včas, už předchozího večera dal do misky vše krom vody a soli a nechal maso přes noc macerovat ve kořeněném víno-zeleninovém láku. Ráno to vonělo přeukrutně dobře. Maso vyndal, přidal vodu, uvedl do varu, osolil a vložil maso. Vroucí vývar stáhl na naprosté minimum a nechal pomaličku táhnout skoro dvě hodiny.

Oloupané brambory nakrájel na velmi jemné nudličky, téměř julienne. V misce rozšlehal jedno vejce, lžičku mascarpone a trochu smetany a zalil tím bramborové nudličky. Až na poslední chvíli malinko osolil, dobře promíchal a rozprostřel do několika hromádek na plech (vyložený pečicím papírem). Dal péct asi na 30 minut do trouby rozpálené na 210 °C (stačilo by méně).

Najemno nasekal jednu cibuli a dozlatova osmažil na olivovém oleji. Přidal plechovku tuňáka – ve vlastní šťávě a protože se bude mixovat, postačil i levný drcený – a trochu sušených rajčat, která si předem namočil (použil suchá sušená rajčata, nikoli naložená v oleji). Trochu osmažil, ochutil rybí omáčkou a přidal polovinu balení mascarpone (lžička z něj už odešla do brambor). Přendal do vysoké nádoby, přilil asi 2 dl smetany a rozmixoval do hladka. Pak nechal ještě projít varem, stáhl z plotny a bez dalšího vaření v omáčce ještě rozšlehal druhou polovinu mascarpone.

Maso bylo v té době už uvařené i napůl vychladlé v chladnoucím vývaru. Nakrájel je na tenké plátky, doplnil pečenými bramborovými střapci a přelil hustou a hutnou omáčkou.

naložené maso příprava vývaru bramborové nudličky směs do brambor
brambory na pekáči suroviny na omáčku cibulka na pánvi suroviny v pánvi
zbytek surovin na omáčku základ omáčky v pánvi omáčka před mixováním téměř dokončená omáčka
upečené brambory plátky masa pokrm na talíři pokrm na talíři, detail

Tuňákovo smetanová máčka je naprosto úžasná, rozhodně ji zařazuji do zlatého fondu. Ochucena pouze těmi sušenými rajčaty a rybí omáčkou nic víc nepotřebovala a báječně podtrhla jak chuť masa, tak i brambor. A to maso stejně jako vývar, to je kapitola sama pro sebe. Nikdy by mě nenapadlo, že vývar s vínem může být tak dobrý – po víně zajímavě sladkokyselý, po zelenině nasládlý, jemně kořeněný… Určitě hodně ovlivní víno (tentokrát Rulandské šedé, kabinet 2005). Takovou chuť masa jsem nikdy předtím neokusil – a ten vývar taky rozhodně nepřijde ladem. Zítra bude s celestýnskými nudlemi a hrstí zeleninového juliennu určitě chutnat báječně.

Skvělé na tom je i to, že i tato omáčka se dá konzumovat studená. Je třeba jen vymíchat do studena, případně stáhnout škraloup. Ale vychlazená chutná výborně, stejně jako maso, které se studené dá nakrájet na ještě tenčí plátky.

A i když to tak rozhodně nevypadá, celé to dalo nanejvýš půl hodiny práce. Paráda.

Špagety s masovými kuličkami, cherry rajčátky a modrým sýrem

Aneb první fotografický foodporn na tomto blogu – a dost možná i poslední, protože vařit s foťákem a následně načítat, upravovat a uploadovat fotky z vaření je neskutečná otrava, zabírající víc času než samotné vaření. Ale zkusit jsem si to musel.

A takto autor dnes vařil oběd:

Jemně mleté hovězí osolil, v hmoždíři rozmělnil špetku oregána a dvě špetky rozmarýny na prášek a společně s nastrouhaným větším stroužkem česneku tím maso ochutil (pepř kvůli dětem vynechán). Ze směsi užmoulal množství malých kuliček, které zprudka osmažil na troše olivového oleje na rozpálené pánvi. Přesunul do zapékací misky, na kuličky rozložil rozpůlená cherry rajčátka (napříště si rozhodně doporučuje přidat rajčátek, nejlépe 1:1 k masu), zasypal bazalkou (čerstvá bohužel nebyla), navrch rozdrobil hroudu modrého sýra (jakýkoli, i obyčejná česká niva postačí) a zastříkl olivovým olejem. Dal zapéct na 210 °C do trouby na 20 minut. Mezitím se uvařily špagety; scedil je, naložil do misek, nahoru naložil upečenou směs a přelil skvostným sosem z rajčátek, sýra a šťávy z masa, zbylým v pekáčku. Konzumace nesnese odkladu.

syrové maso smažení 1 smažení 2 suroviny
připravený pekáček detail před pečením špagety připravený pokrm

Znáte Ala Yankovica?

Aneb kde taky by se mohl Vladimír Hron přiučit, jak se to dělá. Ve Státech je „Weird Al“ Yankovic poměrně známý a jeho heslo na Wikipedii vydá na pár stránek. Je to zvláštní člověk – na jedné straně hraje na akordeon polku s kapelou, která si nezadá s Velkopopovickou kozlovkou, na druhé straně ze sebe sype náramně povedené parodie. A nejenže umí dobře měnit hlasové polohy a přizpůsobovat se imitovanému originálu, je taky slušně pohybově nadaný a dokáže odtančit i part Michaela Jacksona. Spousta jeho parodií se dá najít na webu, další desítky vyšly na CD a VHS/DVD. Z pokladnice YouTube vybírám:

A úplně nejvíc poslední dobou ujíždím na tomhle:

  • White & Nerdy (info) – orig. Ridin' (Chamillionaire). U této písničky jsem si dost dlouho myslel, že to není parodie, jen dost dobrá vlastní tvorba, ale nakonec jsem našel, že ani tohle není výjimka. Nicméně i poté, co jsem našel a poslechl si originál, tu parodii mám pořád výrazně radši; ti drsní černí rappas, co se berou děsně vážně, jsou tak nějak srandovnější než ten Weird Al. Příjemnou zábavu.

O velikosti písma v prohlížečích, zvětšování a zoomování

Způsob zobrazení písma použitého na HTML stránce určuje primárně webový prohlížeč. Ten má ve své konfiguraci přednastaven základní typ a velikost pro obyčejné písmo, má definováno, zda nadpisy různých úrovní mají být 1×, 1,2×, 1,5×, 2× nebo 3× větší než toto základní písmo, jakým stylem se zobrazují odkazy atd. To je základní způsob zobrazení všech HTML dokumentů (WWW stránek). Již drahnou dobu je ovšem možné k těmto dokumentům připojit definici stylů (v jazyce CSS), kde lze předefinovat vzhled kterékoli části stránky, včetně stylu a velikosti písma, o níž teď půjde především.

CSS pro definice rozměrů objektů a velikostí písma používá několik jednotek. Jsou dvou typů:

  • absolutní jednotky, které mají oporu ve standardizovaných jednotkách. Výsledek má mít přesně daný, měřitelný rozměr – pokud v CSS nadefinuji, že box bude 10 cm vysoký, má takový být na displeji PDA, vytištěný na papíře i na 100metrovém projekčním plátně.
    • mm – milimetr
    • cm – centimetr
    • in – palec (inch); 1 in = 25,4 mm
    • pt – typografický bod; 1 pt = 1/72 in = 0,3528 mm
    • pc – pica (typografická jednotka); 1 pc = 12 pt = 4,2333 mm
  • relativní jednotky, které se vztahují k jiným rozměrům či použitému zobrazovacímu zařízení. Výsledek tedy může být za různých podmínek různý.
    • em – 1 em odpovídá platné velikosti písma v daném kontextu. Vychází-li tam, kde použiji jednotku em, velikost písma 13 pt, bude 1 em znamenat právě 13 pt. Pokud to vyjde 4 metry, bude zde 1 em znamenat čtyři metry.
    • ex – jednotka významem podobná em, také vychází z platné velikosti písma. Pro zjednodušení postačí říct, že ex je zhruba polovina em (což tak některé prohlížeče ostatně stále interpretují, ačkoli je to jinak a poněkud složitější).
    • px – pixel. Měl by to být nejmenší rozlišitelný obrazový bod, který je vnímán stejně velký (v dohodnuté subjektivní velikosti) na různých zobrazovacích zařízeních. Na papíře, který se čte zblízka, tak vychází asi 0,2 mm, na obrazovce počítače asi 0,27 mm; na televizi sledované z 3,5 metru už to dělá asi 1,3 mm, na plátně sledovaném z 10 metrů pak kolem 4 mm. Na počítači se pro zjednodušení obvykle ztotožňuje s bodem obrazovky.

Pochopitelně v CSS můžeme použít libovolné jednotky současně, můžeme je míchat a střídat. Text článku může být nadefinován velký 12 pt, mezititulek 1.5 em a hlavní nadpis 36 px. Proč ne. Prohlížeč při vykreslování přepočítá rozměry na body výstupního zařízení a pouze použije pro každou část textu jiný algoritmus. Kvůli odlišným definicím použitých jednotek se může stát, že nejen výsledná absolutní velikost, ale i vzájemný poměr takto rozdílně definovaných textů se bude lišit na různých výstupních zařízeních – zatímco 12 pt má být vždy a všude stejně velkých, 36 px bude na plátně třeba 20× větší než na papírovém výtisku; změní-li se výchozí objekt, z něhož je počítaná velikost 1 em, změní se i odvozená velikost mezititulku, zatímco základní text bude stále stejně velký 12 pt atd. Ale na jednom konkrétním zařízení bude vykreslená stránka stejná a velikosti všech textů dané jednoznačným převodem relativních jednotek na absolutní rozměry.

Zvětšování písma vs. zoom

Již mnoho let je v prohlížečích k dipozici funkce Zvětšit/Zmenšit písmo. Umožňuje nám zvětšit či zmenšit najednou všechny texty na celé stránce – zobrazit je jedenapůlkrát, dvakrát, čtyřikrát větší, resp. menší než obyčejně. A protože se všechny zvětšují/zmenšují stejným koeficientem, zůstávají vzájemné poměry textů na stránce stále stejné. Pokud byl nadpis článku dvakrát větší než jeho text, platí to stále i po celkovém zvětšení či zmenšení.

Jak už bylo řečeno výše, jednotky použité pro definování velikosti písma se použily pouze pro původní vykreslení a ovlivňují nanejvýš jen vzájemné poměry různých úseků textu na stránce – ale to, jak velké to bude všechno jako celek, může ovlinit právě dodatečná funkce Zvětšit/Zmenšit písmo. Pouze v Microsoftu se kdysi rozhodli (z mně dosud neznámých důvodů), že z tohoto algoritmu vynechají texty definované jednotkou px. Takže ačkoli Internet Explorer (IE) umožňuje zvětšit/zmenšit písmo celé stránky, u textů, jejichž velikost je v CSS definovaná v px se změna velikosti neprojeví a zatímco vše kolem se může zvětšovat/zmenšovat dle libosti, tyto texty zůstanou trvale v původní velikosti. Toto chování nemá žádnou logiku a Microsoft je za ně dlouhodobě a soustavně kritizován odbornou veřejností. Přesto zůstalo zachováno i v nejnovější verzi IE 7. Tento nesmyslný algoritmus IE je ostatně hlavní příčinou toho, že se jednotka px přestala prakticky používat a odborníci doporučují raději používat procentní a relativní velikosti písma (jednotkou em), mnohé normy vymezující požadavky na WWW stránky z hlediska použitelnosti a přístupnosti pak použití px pro velikost písma přímo zakazují. Kvůli jedné podivné manýře Microsoftu.

Nicméně změna velikosti písma je užitečná, především jeho zvětšení na stránkách, které jsou zobrazeny pro nás příliš drobným písmem. Má ale také jisté nevýhody. Tou hlavní je to, že při zvětšení písma se všechny bloky textu přeformátují – s jinou velikostí písma se posunou hranice zlomu řádek, texty, které se přesně vešly do vymezeného prostoru se tam rázem nevejdou, texty se mohou překrývat apod. Proto je někdy výhodnější použít zvětšení/zmenšení celé stránky, pomocí tzv. lupy. Stejný postup se používá i v jiných aplikacích, známe ho z Wordu, čtečky PDF a dalších. Stránka se zvětší jako celek, poměrně všechny její části, texty, bloky, objekty, čáry; jako bychom se na stránku podívali pod lupou. Pokud je obsah stránky vektorový (obvykle písma, případně SVG a některé Flash objekty), je to velmi užitečné a při dostatečně velké obrazovce se takto dá používat prohlížeč trvale (zoom zvětší i rozměr „sazebního obrazce“ stránky, takže je potřeba i víc místa, větší okno, případně se musí použít i vodorovné scrollování). Ale většina grafiky ve stránkách je bitmapová a při zvětšení se zvětšují i její pixely. Grafika stránky a vložené obrázky se stávají zubatými a od určité velikosti se na to už nedá moc dívat. Všechno má svá pro a proti.

Jedním ze skutečných vylepšení MSIE 7 je přítomnost takovéto lupy, a to aniž by prohlížeč upustil od možnosti upravit pouze velikost textu (bohužel textů definovaných v px se to stále netýká). Změnu velikosti textu najdete v menu přibližně na původním místě (najdete-li ovšem to menu; Page → Text Size → Smallest/Smaller/Me­dium/Larger/Lar­gest), celostránkový zoom/lupa pak přibyl na sousední položce (Page → Zoom) a najdete ho i v pravém dolním rohu okna prohlížeče.

Zmínit je potřeba i zoom/lupu na systémové úrovni. Pokud je taková funkce dostupná, speciální obdobná funkce v prohlížeči už postrádá smysl. Např. v Mac OS X lze zvětšovat celou obrazovku kolečkem myši (při stisknutém Ctrl), systémový prohlížeč Safari tudíž už další zoom neposkytuje, protože by stejnou funkci dělal podruhé. Systémová lupa ve Windows XP pro tyto účely není příliš dobře použitelná a samostatná funkce zoom v prohlížeči IE je proto rozhodně přínosem.

Zoom vs. em-layout

S předchozím rozdílem mezi zvětšováním písma a zoomem celé stránky souvisí ještě jedna nuance, přesněji řečeno technika stylování CSS. Nazývá se pružný, elastický, gumový nebo také em-layout (či design) – podle jednotky em, která se při tom využívá. Trik spočívá v tom, že se rozměry prvků stránky (či aspoň šířky hlavních sekcí a sloupců) definují pomocí jednotky em. Ta je, jak řečeno výše, odvozena od aktuální velikosti písma, takže rozměr „sazby“ přímo zavisí na použité velikosti písma. Pokud si uživatel písmo v prohlížeči zmenší, zmenší se i odvozené objekty, pokud si písmo zvětší, zvětší se i sazba. Autor stránky má vhodným použitím relativních jednotek v CSS možnost určit, které rozměry mají růst/zmenšovat se společně s velikostí písma, a které mají zůstat neměnné.

Vyzkoušet si to můžete i na tomto blogu. Šířka hlavního sloupce je definovaná pomocí em, takže pokud zde používáte výchozí CSS a v prohlížeči si zvětšíte/zmenšíte písmo, přizpůsobí se mu i tento sloupec. Je tím zajištěno, že šířka sazby je vždy taková, aby se do ní vešel přibližně stále týž určený počet znaků; nemůže být příliš úzká ani příliš široká. Stačí měnit velikost písma a přizpůsobíte si i celý layout stránky, aniž by se nehezky deformovaly bitmapy, které při tomto „zoomu“ zůstavají netknuté. Šířku druhého, úzkého sloupce jsem (už ani nevím proč) definoval v px, takže ta zůstává při změně velikosti písma konstantní.

Nedá se určit, která metoda je lepší, různým lidem za různých okolností vyhovuje vždy něco jiného. Chci-li si jen zvětšit písmenka, protože mi text připadá příliš malý a špatně se mi čte, je ideální pouhé zvětšení písma. Mám-li výrazně slabší zrak a hůře vidím i obrázky a grafické symboly na stránce, bude pro mě asi výhodnější lupa. Mám-li velké rozlišení obrazovky a stránky vidím jako úzké nudle s miniaturními písmenky, je asi nejvýhodnější zvětšené písmo s dobře navrženým em-layoutem, díky němuž si spolu s písmem zvětším i celou stránku (aniž bych zvětšoval použité bitmapové obrázky). Každá situace chce své a každé z uvedených řešení má své místo, někdy je lepší to, jindy ono. Hlavní je mít možnost volby.

Ovšem pro to hloupé znemožnění zvětšit si v IE písmo definované v px jsem ani při nejlepší vůli žádný užitek nenašel.


Pozn.: Impulsem k napsání tohoto příspěvku byl článek na Lupě Velikost písma v moderních prohlížečích, vycházející z mylných předpokladů a obsahující několik zásadně chybných informací.

Na víkend navařeno po burgundsku

Velmi stručně: boeuf bourguignon. Díky, Šárko. Jen ta čerstvá křupavá bagetka jako příloha mi dopřána není, jako přílohu jsme netradičně zvolili jáhly. Ty obvykle děláváme jako kuskus (vařené v bujónu s trochou oleje a nějakou zeleninou), tentokrát jsme poprvé udělali zcela čisté. K tomu báječnému těžkému burgundskému hovězímu to sedlo výborně.

Poznámka do archivu – bezlebková dieta: mlži, plži, hlavonožci.

Krůtí kapsa s rajčátky a modrým sýrem

Poslední dobou máme trochu usnadněné rozhodování, co uvařit, neboť se nám před měsícem v mrazáku uhnízdil krocan. Asi 10 kilo prsou a stehen naporcovaných v úhledných balíčcích. Máme nadlouho co dělat. Dnes jsme vybrali pro změnu prsa a takto autor připravil dnešní oběd.

Pěkný kousek krůtích prsou prořízl a udělal v nich krásnou velkou kapsu. Osolil a opepřil. Hrst červených a hrst žlutých cherry rajčátek nakrájel na čtvrtky, k nim přidal hrst čertvých žampionů nakrájených nahrubo a nadrobil asi 15 dkg modrého sýra (nic speciálního, ten nejobyčejnější z Delvity). Směs promíchal a napěchoval k prasknutí do té krůtí kapsy. Otvor zajistil naostřenou špejlí. Naducanou kapsu potřel olejem a zprudka ze všech stran osmažil na rozpálené pánvi, aby se maso zatáhlo. Přendal na pekáček, obložil zbylou nádivkou, kterou doplnil o trochu bazalky, navrch položil kousek másla a podlil malinko vodou. Peklo se hodinu při 180 °C a rozvonělo se to celým domem od samého začátku. Upečené nakrájeno na plátky, které na talíři přelity sýrovo-rajčatovou šťávou z pekáčku. K tomu se podávala bylinková bramborová kaše (bohužel jen instantní – neboť až poslední chvíli zjistil, že došly brambory, které měl v plánu k tomu připravit s bylinkovým máslem – leč ve výsledku dobrá; do horké vody v rámci přípravy kaše přidány sušené bylinky nemalou měrou, libeček, petržel, požehnaně pažitky, troška máty a pro vůni i špetka sušeného česneku; nechalo se řádně namočit a uvolnit aromata a chuti a teprve pak se vmíchala sušená směs).

Vůně rozpečených rajčat, bazalky a sýra smíšená s vůní bylinek doznívá ve vzduchu a zvolna ji překrývá závoj vůně arabiky z horkého poobědového espressa. A v tomhle stavu se má člověk vrátit k práci.