phpFashion

Na navigaci | Klávesové zkratky

Rubrika Web

Dean Edwards a jeho IE7

Geniální udělátko o kterém se u nás kupodivu moc neví. Některým webdesignérům prý natolik usnadnilo život, že začali fetovat a krást, aby zase nějaké problémy měli. Takže opatrně s tím!

Už to budou dva roky, co Dean Edwards začal psát záplatu pro Internet Explorer, která umožní webdesignerům používat pokročilé CSS vlastnosti. A nejen je. Nazval ji vyloženě nešťastně IE7, nejspíš nevěřil ve vznik další verze Microsoftího prohlížeče.

…pokračování


Color mixer aneb míchátko

Právě jsem vytvořil dvě jednoduchá míchátka barev. Jsou určena pro uživatele webových aplikací (nikoliv webdesignéry, jako třeba Pixyho generátor schémat). Slouží tedy k interaktivní volbě barvy. Dávám je volně k dispozici pod licencí GPL.

Download ColorMixer Michatko:

Míchátka používají několik fikaných kouzel pro manipulaci s barvami. Díky nim jsem v DHTML dosáhl podobné funkčnosti, jaká je známá spíše z desktopových aplikací. Tedy nechci se tu naparovat, jen že jsem nic podobného na webu zatím neviděl.

Míchátko s barevným proužkem

Připomíná „Color Picker“ z Adobe Photoshopu. Funguje pod IE 6, Mozillou a Operou (ostatní prohlížeče jsem neměl možnost ověřit, můžete zkusit sami a poslat report). (odkaz)

(aktualizováno: s míchátkem na stejném principu přišel už o měsíc dříve Dalton Lloyd, patří mi tedy krásné druhenství)

Míchátko s barevným prstencem

Ovšem tady si snad prvenství obhájím. Co ty na to, Daltone?

Implementace

Pro implementaci stačí nalinkovat do stránky příslušný CSS a JS soubor (viz jednotlivé příklady) a poté vytvořit a nakonfigurovat objekt mixéru.

<link rel="stylesheet" type="text/css"
   href="dgxcolormixer.css" />

<script type="text/javascript"
   src="dgxcolormixer.js"></script>

<script type="text/javascript">

// definujeme obsluhu událostí
function myChangeColorHandler(mixer) { ... }
function myConfirmHandler(mixer) { ... }

// vytvoříme objekt
var mixer = new DGXColorMixer();

// nastavíme handlery
// pro změnu barvy
mixer.onChange = myChangeColorHandler;
// pro povrzení změny
mixer.onConfirm = myConfirmHandler;

// barva
mixer.setColor('FF0030');
// nebo
mixer.setColor(new RGBColor(10, 20, 30));
// nebo
mixer.setColor(new HSVColor(280, 100, 50));

// případně včlenit do existujícího elementu
mixer.setParent('main1');
// nebo
el = document.getElementById('main1');
mixer.setParent(el);

// dosud je mixér skrytý, tak jej zobrazíme
mixer.show();

</script>

Mixér lze propojit s editačním políčkem input a také nastavit, zda bude fungovat jako vyskakovací okénko (automaticky se umístí hned vedle editačního políčka). Tady se můžete podívat na příklad.

// create mixer
mixer = new DGXColorMixer();

// propoj s prvkem s id 'color1'
// druhý parametr nastavuje popup režim
mixer.attachInput('color1', true);

Ovládání přes URL

V URL můžete zadat barvu. Pro RGB lze použít tří nebo šestiznakový HEX formát, dekadický zápis nebo dokonce slovní označení:

Podporován je též HSV (HSB) vstup, kde Hue je v rozsahu 0..360 a Saturation + Brightness v rozsahu 0..100


Statistika používání HTML značek

Která značka je nejpoužívanější? Je více formulářů POST nebo GET? A jak vypadá běžná událost onclick?

Pracuji na projektu, kvůli kterému jsem si vytvořil statistiku používání HTML značek, jejich atributů a hodnot. Výsledky jsou celkem zajímavé, takže se s vámi o ně podělím. Topten nejpoužívanějších značek vypadá následovně:

Jak v tabulce číst? V prvním řádku vidíme, že 18% značek v průměrném dokumentu představuje kotva <a>. Celých 99% kotev má uveden atribut href, 22% atribut title atd. Druhá nejpoužívanější značka je <td>, na obrázku vidíme i přehled nejčastějších hodnot atributu class (zobrazí se v moderních browserech po najetí myšky na buňku tabulky).

Dlouho jsem přemýšlel, jak pro měření získat objektivní vzorek dat. Nakonec jsem analyzoval prvních deset odkazů, které vrací Jyxo pro každé slovo z Top 1000. Po promazání atypických souborů vznikl různorodý vzorek cca 10.000 stránek. Pro zajímavost jsem vytvořil druhou statistiku, která zahrnuje titulní stránky všech webů umístěných v galerii CSS Vault (bohužel vzorek je docela malý).

Tady jsou:

Co lze vyčíst

Zajímavé je zejména srovnání obou tabulek. Rozdíly v popularitě značek asi neprozradí nic překvapivého, ale velmi krásně demonstrují odlišnost zastaralého a moderního pojetí webdesignu. Co dále… všimněte si, že obvyklé šířky tabulek jsou kolem 98% (jestlipak víte proč?). Kódování windows-1250 je cca 4× častější, než iso-8859–2. Velká spousta webů chybně uvádí kód jazyka ‚cz‘ namísto správného ‚cs‘. Perličkou je, že tučné písmo rádi barvíme do tmavě modré či červené.

A tak bych mohl pokračovat. Najdete-li sami něco zajímavého, můžete se zmínit v komentářích.


http://user:pass@example.com pro SP2

Pokud vás štve, že po nainstalování Service Pack 2 pro Windows XP (případně jiného patche) nefunguje v Internet Exploreru zjednodušené přihlašování ve formě http://username:password@example.com, dá se to řešit úpravou registrů.

Vytvořte si soubor iefix.reg s tímto obsahem a pak jej spusťte:

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer\Main\FeatureControl\FEATURE_HTTP_USERNAME_PASSWORD_DISABLE]
"iexplore.exe"=dword:00000000
"explorer.exe"=dword:00000000

Změna se bude týkat všech uživatelů počítače. Pokud ji chcete omezit jen na aktuálního uživatele, zaměňte klíč HKEY_LOCAL_MACHINE za HKEY_CURRENT_USER.


Když je spoluautorem automat

Nemám rád automaticky generované vysvětlivky. Tím myslím strojové podtržení určitých zkratek (např. HTML nebo CSS) a doplnění o vysvětlivku v title. Dopadá to asi takto:

Ta přednáška o prasatech je v HTML a najdeš ji na adrese http://www.la-trine.cz/HTML/kscm.php – tak se na to podívej.

Tato „feature“ nepřináší čtenáři žádnou přidanou hodnotu. Spíš naopak, odpoutává pozornost od textu. Autor by měl vědět, pro koho píše a sám se rozhodnout, jestli je třeba zkratku vysvětlit, kde tak učinit a jakým způsobem. Tohle automat nevymyslí.

Bohužel, spoustě uživatelů připadá jako skvělý nápad si do svého CMS automatický vysvětlovač nainstalovat. Vážně si myslíte, že člověka nechápavě hledícího na zkratku CSS, přivede title=Cascading Style Sheet k prozření? Nebo že v pojednání o plovoucích boxech je nutné čtenáři význam CSS připomenout?

p.s. Počítačoví odborníci, víte, co znamená PCI?


Hlásí XML: error undefined entity?

XML

Podle specifikace zná XML pouze pět předdefinovaných entit. Jsou to &lt; &gt; &amp; &quot; &apos;. Všechny ostatní je třeba buď definovat, nebo (lépe) zapisovat v číselné podobě či rovnou jako znak. Takto doporučuji psát i &apos;, kteroužto entitu Internet Explorer nezná.

XHTML samozřejmě používá i další entity, ale pokud pracujeme s textem, který má být přístupný zároveň v prohlížeči jako XHTML a kupříkladu ve čtečce jako RSS, je třeba se přizpůsobit neužšímu místu.

Číselná podoba zápisu entity má tvar &#xxx;, kde xxx je ordinální hodnota znaku. Takže třeba entitu &shy;, která odpovídá znaku s kódem 173, zapíšeme jako &#173; (desítkově) nebo &#xAD; (šestnáctkově). Při převodech pozor na to, že ekvivalentní jsou i zápisy &#0173; &#xad; &#xAd;.

Dále lze přímo zapsat znak (třeba ten s kódem 173). Obecně ale tento postup aplikujte jen v případě, že kódujete dokument v unicode. V jiných kódováních totiž nemá spousta entit své jednoznakové protějšky.

Příklad převodní tabulky najdete v tomto fóru.

Ještě bych dodal, že pro určité výstupy bývá vhodné zaměnit typografické znaky za jejich ASCII alternativy. Tedy namísto „českých uvozovek“ použít "počítačové", taktéž pevnou mezeru zaměnit za obyčejnou a pomlčky za spojovníky. Dělá se to kvůli neschopnosti cílového zařízení správně tyto znaky interpretovat.


IE bug: mizející text

Zkuste si v IE verze 6 otevřít tento článek (htmlshot) na ILblogu a pomalu rolovat stránku dolů (kolečkem myši nebo posuvníkem). V okamžiku, kdy se zobrazí celá tabulka, zmizí blok textu začínající slovy Ve stránce je vložen kód obrázku a končící onou tabulkou. Pokud rolujete dále, po zobrazení další tabulky opět zmizí předcházející text.

Tabulky jsou plovoucí obrázky následované „čističem“ <br clear=left>. Z hlediska čistoty kódu jde samozřejmě o zbytečnou konstrukci, ale v souvislosti s ILblogem nemůže být o čistotě kódu řeč vůbec.

Je to ukázka peek-a-boo bugu, nebo jde o něco jiného?

Když už jsem nakousl ILblog: nejsem moc zvědavý na blogy „významných“ lidí, protože bývají narozdíl od autorů nezajímavé. Schopnost něco dokázat v oboru neimplikuje schopnost zajímavě psát. V tomto směru je ILblog velmi příjemnou výjimkou!


Konec W3C prostřednictvím psa II.

Předchozím článkem, který hodnotil projekt Webylon, jsem rozpoutal trošku nechtěnou diskuzi na téma validita, sterilita, sexualita a kompatibilita. Moment… ne, tak o tom předposledním diskuze nebyla.

Dovolte mi takové shrnutí:

Validita primitivní:

  • patří sem uzavírání značek, vkládání hodnot atributů do uvozovek v XHTML atd.
  • díky ní je zápis jednoznačný
  • lze jej strojově zpracovat
  • pro HTML nutnost a netřeba o ní diskutovat
  • nedodržování je u profesionála neomluvitelné

Validita dle W3C:

  • např. povinné uvádění atributu alt v img elementech, nepoužívání neexistujících CSS vlastností apod.
  • díky ní je zápis validní dle W3C (ověřuje validator.w3.org)
  • lze jej vhodně zobrazit na všech zařízeních (plán do budoucna)
  • konstruktivní diskuze je třeba (hnací motor vývoje webdesignu)
  • nedodržování:
    • z neznalosti (nedostatek na straně tvůrce)
    • z dobrých důvodů (nedostatek na straně W3C?)

Weby validní dle W3C mohou být označeny ikonkou nebo odkazem, která tuto skutečnost potvrzuje. Ta představuje pro tvůrce webu jakousi konkurenční výhodu, neboť tvořit W3C validní weby je přínos, ale ne samozřejmost. Význam pro zákazníka proberu níže.

Validita dle W3C NEznamená:

  • kvalitu kódu
  • přístupnost
  • lepší optimalizaci pro vyhledávače
  • omezení grafického zpracování

Pro zákazníka je tedy známka validity jen vodítkem ke znalostem a úrovni práce toho kterého webdesignérského studia. Nikoliv zárukou kvality (ať už studia nebo webu). Myslím, že nelze ani přeceňovat kompatibilitu webu s budoucími generacemi prohlížečů, protože před jejich nástupem proběhne ještě hodně redesignů (nebo firma zkrachuje ;).

Význam validity:

Validita je tedy pouhou startovní čárou při tvorbě webu, teprve za ní vzniká možnost projevit své schopnosti. V mnoha případech se bohužel stává i omezujícím kritériem, nebo dokonce cílem. To má smutné následky, jakým je třeba:

Sterilita:

  • vedlejší efekt úzkostlivé snahy být validní dle W3C
  • nepoužívání proprietárních rozšíření prohlížečů (viz)
  • projev nedostatku grafického cítění
  • stránka se nemaluje, ale programuje

Pro tvůrce sterilních webů použil Jiří Bureš trefné označení suchar.

A na závěr zrekapituluji jev, kterým se vrátím zpět k Webylonu:

Nekompatibilita:

  • stav, kdy různé prohlížeče rozumí stejné vstupní informaci jinak
  • vzniká buď neexistencí standardu, nebo jeho nedodržením ze strany vývojářů prohlížeče
  • předchází se jí standardizací (snaha W3C)

Pokud přímo prostředí, kde nekompatibilita vzniká (CSS, JavaScript, HTML), nabízí prostředky, jak ji řešit, nemělo by se šahat po silnějších nástrojích. Velmi silným (a tupým) nástrojem je Webylonský lék. A tudy ne, přátelé.


Konec W3C prostřednictvím psa pana Foustky?

Aneb Webylon.

Byly doby, už je to pradávno, kdy se mezi blogery vášnivě diskutovalo o takových podivnostech, jako je validita, standardy a oddělení obsahu od formy. Dnes už je dodiskutováno a titulkem „Validita je k ničemu“ nebo „Validita na hrad“ nejspíš čtenáře příliš nešokuji a leckterý webloger si jen poklepe na čelo: „To už bylo, dál. Písmeno!“.

Projekt Webylon přišel přesně o dva roky později, než měl. Tehdy mohla jeho sláva dosáhnout hvězd, dnes dosáhla jen několika zmínek (Yuhů, llook, Rony). A jsem dost skeptický k tomu, že by Chamurappi, autor Webylonu, živější diskuzi na dávno probraná témata rozpoutal. I když bych mu to přál.

Deevangelizace

Ale pryč s pesimismem. Pokud Vaše sympatie patří sdružení W3C, rozhodně si přečtěte Webylonskou kritiku. Jednak má povídání originální styl a celé je prodchnuté starověkým Babylónem, za druhé je to jeden ze vzácných zdrojů alternativních názorů. Tím nechci říci, že s autorem vždy souhlasím, ale pro utvoření zdravého názoru je třeba slyšet výpověď více stran.

Rád bych citoval ze stránky Otázky víry, kde se Chamurappi vyjadřuje k otázce validity:

Bobřík validity – oběť už „umí“ a na svých webech se tím chlubí slavnými oranžovobílými ikonkami Valid! od W3C. A protože „umí“, tak si věří. A protože si věří, tak nevěří těm, kdo v neomyslnost konsorcia nevěří. Zuřivě odmítá jakékoliv proprietální možnosti konkrétních prohlížečů. Pojem „využití možností konkrétního prohlížeče“ jí zůstal v hlavě zafixován jako symbol zla a chyba těch, kdo nevěří.

Jako programátor rozumím validitě ve smyslu korektního zápisu. Validita se však stala modlou a jejím vedlejším projevem je pak sterilita. Všimli jste si, jak jsou si dnešní „hezké weby“ navzájem podobné? Tvůrčí invenci střídá ikonka Valid.

Lék na neexistující nemoc

Webdesign dle standardů je zatím utopií. Dnes se tvoří stránky především podle průniku schopností prohlížečů a ten se občas lehce roztáhne použitím hacku. Pokud si lépe přečtete předchozí citát, uvědomíte si, že Chamurappi volá po využívání možností všech prohlížečů. Tedy nikoliv průniku, ale sjednocení.

A jde ještě dál. Nabízí nástroj, která umožní takové weby snadno psát. Webylonský lék.

Revoluční přístup? Alternativní webdesign? Nejsem si jist…

Jaký je rozdíl mezi oním průnikem a sjednocením? Pro mě osobně téměř žádný. V graficky rozvernějších webech si rád hraji s průhledností a obarvím i scrollbar, a že je to za cenu ztráty validity CSS souboru mi skutečně žíly netrhá. Ale kam jít dál? Jaké další proprietární funkce využít? Třeba napsat flashový web a k tomu HTML alternativu? Ano, takovou blbost jsem před lety udělal. Jenže za cenu dvojí práce a jedněch peněz. Never more.

Je to asi díky praxi a zkušenostem, ale dnes na omezení prohlížečů nenarážím. Otevřu pověstný „notepad“ a píši. Necítím se omezován a tím pádem ani nemám potřebu použít Webylonský lék.

Krom toho, onen lék není nic originálního: server upraví dokument podle hlavičky user-agent. Trik je sice v podání Chamurappiho vyveden do dokonalosti, jeho použití však důrazně nedoporučuji. Kdysi jsem podobnou fintu také vyzkoušel a vracel prohlížečům různé verze .css souboru (zpracováním přes PHP), ale přestalo fungovat kešování. Naprogramoval jsem tedy v PHP kešovací modul, ale ten byl jen zdrojem dalších problémů.

Dvojí Webylon

Webylon jakožto kritik W3C je mi svým netradičním postojem přinejmenším sympatický. Toto je jeho silná parketa. Bohužel, v mých očích celý projekt shazuje onen „lék“. Jak už jsem uvedl, před několika lety to mohla být bomba, dnes je to krok zpět.

Přál bych Webylonu, aby se této rozdvojenosti zbavil. Ačkoliv tuším, že „lék“ existoval dřív než filozofický obsah webu, bylo by dobré jej nechat zmizet v propadlišti dějin a věnovat se odvážným myšlenkám. Otevírat lidem oči, zbavovat je zaslepenosti a inspirovat k diskuzi. Takový projekt by se mi líbil. A chybí tu jak sůl.


Bohové jsou šílení: Jiří Kosek nerad XHTML

Jiří Kosek napsal svůj první článek na Interval.cz a hned jím rozpoutal bouřlivou diskuzi. Je v ní víc vášně než argumentů. Kdyby autorem článku nebyl pisatel tak zvučného jména, zřejmě by byl v komentářích rychle odbyt.

Z toho celého u mě převládají dva dojmy:

  1. pozitivní: je tu velká spousta webdesignérů, kteří mají zájem tvořit kvalitní weby moderním způsobem
  2. negativní: spousta diskutujících brání své vyznání a haní opačné se zřejmým fanatismem, místo argumentů nastupují emoce

Z hlediska zápisu je mezi HTML 4.01 a XHTML 1.0 tak drobný rozdíl, že jít kvůli tomu do zbraně je absurdní. Ale děje se to. Což potvrzuje fanatický přístup k problematice. Zkusím poukázat na několik paradoxů:

Paradox č. 1

Skalní zastánci oddělování obsahu (HTML) od formy (CSS) nejsou schopni oddělit diskuzi o HTML od diskuze o CSS.

Přitom XHTML a HTML mají naprosto tytéž prostředky, jak CSS implementovat. Taktéž značka FONT je v označena jako Deprecated už v HTML 4.

Paradox č. 2

„Internet Explorer není schopen zobrazit XHTML stránky,“ tvrdí diskutující v komentáři, který napsal v MSIE a odeslal z XHTML validní stránky Intervalu.

XHTML verze 1.0 je navrženo tak, aby jej bylo možné zobrazit i ve straších prohlížečích, jako je například IE. Otázkám zpětné kompatibility je věnován dodatek C specifikace.

Paradox č. 3

O tom, že stránka je v XHTML větší a zabírá více místa, je možné vést stovky kilobajtů zbytečných diskuzí.

Úvahy nad úsporou datového objemu bývají obvykle užitečné. Třeba v oborech, které se zabývají komprimací videa a hudby. Uvažovat nad bajtíky je mrháním časem.

Paradox č. 4

„HTML dovoluje ‚prasárny‘, které Vám u XHTML neprojdou“ soukal ze sebe, zatímco se cpal pizzou, drobky mu padaly na klávesnici a pak mastnou rukou klikl na tlačítko odeslat.

Jste-li prasátka a máte-li rádi bordýlek, ať už v kódu, na disku nebo ve svém pokoji, nepomůže Vám ani XHTML. Chyba není na straně W3C, ale ve špatné výchově, kterou Vám rodiče poskytli ?

Paradox č. 5

XHTML píší odborníci, HTML laici.

Asi nejdůležitější moment: Pokud pod pojmem XHTML chápete správně sestavenou a platnou XHTML stránku, tak je nutné i pod pojmem HTML chápat jen správně sestavený dokument. Ačkoliv si spousta designérů myslí, že také tvoří HTML, často to není pravda. Prostě píší textový soubor s využitím HTML značek, který umí jejich prohlížeč nějakým způsobem zobrazit.

Takže obojí, jak HTML tak i XHTML, vyžaduje od autora výbornou znalost problematiky.

A tímto bych článek uzavřel. Sám používám výhradně XHTML z důvodu kompatibility s XML. Ta otevírá dveře do dalších dimenzí zpracování dokumentů. Na druhou stranu vím, že převod HTML >> XHTML je proveditelný plně automaticky.


phpFashion © 2004, 2024 David Grudl | o blogu

Ukázky zdrojových kódů smíte používat s uvedením autora a URL tohoto webu bez dalších omezení.