Autor Zpráva
Anonymní
Profil *
Ahoj

Rád bych implementoval dvouúrovňové menu jako např. zde: http://css.interval.cz/clanky/horizontalni-dvouurovnove-menu/

Když však kó 100% zkopíruji do své stránky včetně nahrání htc souboru, tak to nefunguje :( Tzn. nefunguje hover efekt - nemění se druhá uroveň podle toho kam najedu myši v první urovni.

Tipoval jsem, že problém bude v umístění htc souboru, ale mám jej ve stejném adresáře a nefungovalo to ani když jsem zadal cestu k němu absolutně.

Kde by mohl být problém?
Gappa
Profil
IE a HTC je na tohle zrůda - nebere cestu od CSS souboru (jak by člověk předpokládal), nýbrž od html souboru.

A někdy se ke všemu ještě chová uplně nepředvídatelně - stávalo se mi, že když htc soubor nebyl nalezen, tak stránka jenom problikla a IE vyhodil 404 chybu...také libové :)
Školník
Profil
tohle menu nefunguje v (mé) Opeře 9.10 (Sestavení 8679)
Railbot
Profil
Bez JS ale takové menu jinak nelze provést. CSS stačí "jen" pro inteligentní prohlížeče, tedy snad všech krom IE (6.0-). HTC není špatná věc, nestalo se mi, že by někdy zlobil.
Chamurappi
Profil
Většina hover menu pochází z doby pozdní JavaScriptoFóbie, kdy kdosi usoudil, že se na (z pohledu CSS 2 nepovinnou) pseudotřídu ve stylopisu lze spoléhat více než na zapnutý JavaScript (tenkrát proslulý nežádoucí dynamičností), a že uživatel bude slintat blahem, když se mu do dráhy optické myši připlete nosní chloupek zrovna v momentě, kdy se svojí roztřesenou rukou pokusí zaměřit šestou úroveň úžasně nakódovaného „statického“ hover menu. Přístupnost a použitelnost ustoupily módě ve zdrojáku.

Reaguji na Anonymního:
Užij místo pseudotřídy klasickou třídu, přidávej a odebírej ji JavaScriptem -- ideálně při onclick, aby si své užila i klávesnice. Je-li klikání nežádoucí a menu je určené pouze uživatelům s myší, nezapomeň opatřit skrývající funkci patřičným zpožděním.

Dále bych na tvém místě upřednostnil značku pro menu určenou (tj. <menu>) před prostým seznamem (tj. <ul>).
Anonymní
Profil *
Reaguji na Anonymního: Než začneš hledat chybu, bylo by dobré zjistit, jak to celé vlastně funguje. Nemá ovšem smysl se ptát Chamurappiho, který je při vší odhodlanosti velmi jednostranně zaměřen, raději si přečti pořádný tutoriál, třeba http://www.tanfa.co.uk/css/examples/menu/tutorial-h.asp...
Chamurappi
Profil
Reaguji na provokujícího Anonymního:
Jsem jednostranně zaměřen? Rád bych věděl na co :-)
Ten odkázaný tutoriál se zbytečně spoléhá na přítomnost myši a na to, že prohlížeč umí buď pseudotřídu :hover na všem, nebo behaviory. Vhodně napsaný JavaScript je čistší technika.

Reaguji na tázajícího se Anonymího:
Máš pro HTC soubory nastavený MIME typ „text/x-component“? Kdybys nám dal odkaz na nefunkční ukázku, našli bychom problém rychleji.
Anonymní
Profil *
Reaguji na hypokritického Chamurappiho:

Jakou souvislost má použití JavaScriptu s přítomností jakéhokoli vstupního zařízení, potažmo myši? V čem je JavaScript vhodnější technikou? Proč je špatné poskytnou každému prohlížeči to, co umí lépe (CSS nebo behaviory)?
habendorf
Profil
tzv. provokující Anonymní

hypo- a hyper- je rozdíl, měl jsi namysli určitě hypo- ?

Jakou souvislost má použití JavaScriptu s přítomností jakéhokoli vstupního zařízení, potažmo myši?
Řekl bych, že Chamurappi má na mysli, že hoveru těžko dosáhneš klávesnicí. Takže menu vůbec nerozbalíš.
Anonymní
Profil *
Tzv. habendorf:

Hypo- a hyper- je skutečně rozdíl. Co jsem myslel, to jsem napsal, už jsem se, zkrátka, takový narodil ˇ-ˇ

Nevím samozřejmě, co měl, má, nebo v blíže nedefinovaném okamžiku potenciální budoucnosti bude mít na mysli Chamurappi, nicméně hoveru stejně těžko dosáhnu JavaScriptem i HTC. Vše závisí na aplikaci zpracovávající vstup (který nemusí mít nic společného ani s myší, ani s klávesnicí). Takže menu musí být především správně vytvořeno a na použité technice nezáleží ˇ-ˇ
habendorf
Profil
tzv. provokující Anonymní: nicméně hoveru stejně těžko dosáhnu JavaScriptem i HTC

Neříkej že v tom htc nepoužíváš onmouseover. Proto podle mě Chamurappi píše, že lepší je onclick než hover/onmouseover. Protože onclick se ti klávesnicí podaří. Je ale pravda, že vyjádřit se musí on sám.


Tzv. habendorf - já ale nejsem tzv. habendorf, já jsem habendorf. Jak to chceš rozlišit, když je vás tady více anonymních? Použil jsem jen rozlišující přívlastek od Chamurappiho.
Chamurappi
Profil
Reaguji na Anonymního:
V čem je JavaScript vhodnější technikou?
JavaScript nabízí více možností a některé z nich jsou vhodnější. Z různých úhlů pohledu.
Většina lidí sahá po CSS hoveru jenom proto, že „to tak taky jde“ a že to vypadá v kódu hezky, nehledě na nevýhody.

Proč je špatné poskytnout každému prohlížeči to, co umí lépe (CSS nebo behaviory)?
Co poskytneš zbytku? Nic. S využitím JavaScriptu jde nějak ošetřit téměř každou eventualitu tak, aby všechny odkazy byly vždy dostupné.

nicméně hoveru stejně těžko dosáhnu JavaScriptem i HTC
Jenže cílem není hover, cílem je učinit menu rozbalitelným. Ideálně vždy a všude, v rámci možností cílového zařízení. Co je špatného na tom poskytnout opravdu každému prohlížeči to, co umí?

Jsem si jist, že JavaScript nutný k realizaci tohoto má mezi prohlížeči širší podporu než nepovinná pseudotřída a behaviory dohromady. Užil bych onclick, což je událost vyvolatelná i klávesnicí. Kdybych byl kýmsi nucen reagovat i na přejíždění myší, dodělal bych navíc onmouseover/onmouseout, případně bych mohl ještě ten onclick nahradit nějakou typicky klávesnicovou událostí. Při onmouseout bych podnabídku okamžitě neskrýval, dal bych návštěvníkovi (třeba) půlsekundovou šanci zbavit se chloupku v myši.

Nevím samozřejmě, co měl, má, nebo v blíže nedefinovaném okamžiku potenciální budoucnosti bude mít na mysli Chamurappi
Co jsem myslel, to jsem napsal. Hned napoprvé.
Toto téma je uzamčeno. Odpověď nelze zaslat.