| Autor | Zpráva | ||
|---|---|---|---|
| phanuel Profil * |
Dobrý den, mám drobný problém udělal jsem si pomocí css hover vysouvací menu na
bona-foto.wz.cz v css mám #sidebar ul ul ul,
#sidebar ul ul li:hover ul ul
{display: none;}
#sidebar ul ul li:hover ul,
#sidebar ul ul ul li:hover ul
{display: block;}na stránkách vše dobře funguje, ale IE ejhle to nemůže přežvýkat tady na fórech jsem našel hodně informací o .....htc, ale jaksi jsem nepochopil asi podstatu sám mám v dokumentu csshover.htc <attach event="ondocumentready" handler="parseStylesheets" /> <script> /** * Whatever:hover - V1.41.050927 - hover & active * ------------------------------------------------------------ * (c) 2005 - Peter Nederlof * Peterned - http://www.xs4all.nl/~peterned/ * License - http://creativecommons.org/licenses/LGPL/2.1/ * * Whatever:hover is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * Whatever:hover is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * Credits and thanks to: * Arnoud Berendsen, Martin Reurings, Robert Hanson * * howto: body { behavior:url("csshover.htc"); } * ------------------------------------------------------------ */ var csshoverReg = /(^|\s)(([^a]([^ ]+)?)|(a([^#.][^ ]+)+)):(hover|active)/i, currentSheet, doc = window.document, hoverEvents = [], activators = { onhover:{on:'onmouseover', off:'onmouseout'}, onactive:{on:'onmousedown', off:'onmouseup'} } function parseStylesheets() { if(!/MSIE (5|6)/.test(navigator.userAgent)) return; window.attachEvent('onunload', unhookHoverEvents); var sheets = doc.styleSheets, l = sheets.length; for(var i=0; i<l; i++) parseStylesheet(sheets[i]); } function parseStylesheet(sheet) { if(sheet.imports) { try { var imports = sheet.imports, l = imports.length; for(var i=0; i<l; i++) parseStylesheet(sheet.imports[i]); } catch(securityException){} } try { var rules = (currentSheet = sheet).rules, l = rules.length; for(var j=0; j<l; j++) parseCSSRule(rules[j]); } catch(securityException){} } function parseCSSRule(rule) { var select = rule.selectorText, style = rule.style.cssText; if(!csshoverReg.test(select) || !style) return; var pseudo = select.replace(/[^:]+:([a-z-]+).*/i, 'on$1'); var newSelect = select.replace(/(\.([a-z0-9_-]+):[a-z]+)|(:[a-z]+)/gi, '.$2' + pseudo); var className = (/\.([a-z0-9_-]*on(hover|active))/i).exec(newSelect)[1]; var affected = select.replace(/:(hover|active).*$/, ''); var elements = getElementsBySelect(affected); if(elements.length == 0) return; currentSheet.addRule(newSelect, style); for(var i=0; i<elements.length; i++) new HoverElement(elements[i], className, activators[pseudo]); } function HoverElement(node, className, events) { if(!node.hovers) node.hovers = {}; if(node.hovers[className]) return; node.hovers[className] = true; hookHoverEvent(node, events.on, function() { node.className += ' ' + className; }); hookHoverEvent(node, events.off, function() { node.className = node.className.replace(new RegExp('\\s+'+className, 'g'),''); }); } function hookHoverEvent(node, type, handler) { node.attachEvent(type, handler); hoverEvents[hoverEvents.length] = { node:node, type:type, handler:handler }; } function unhookHoverEvents() { for(var e,i=0; i<hoverEvents.length; i++) { e = hoverEvents[i]; e.node.detachEvent(e.type, e.handler); } } function getElementsBySelect(rule) { var parts, nodes = [doc]; parts = rule.split(' '); for(var i=0; i<parts.length; i++) { nodes = getSelectedNodes(parts[i], nodes); } return nodes; } function getSelectedNodes(select, elements) { var result, node, nodes = []; var identify = (/\#([a-z0-9_-]+)/i).exec(select); if(identify) return [doc.getElementById(identify[1])]; var classname = (/\.([a-z0-9_-]+)/i).exec(select); var tagName = select.replace(/(\.|\#|\:)[a-z0-9_-]+/i, ''); var classReg = classname? new RegExp('\\b' + classname[1] + '\\b'):false; for(var i=0; i<elements.length; i++) { result = tagName? elements[i].all.tags(tagName):elements[i].all; for(var j=0; j<result.length; j++) { node = result[j]; if(classReg && !classReg.test(node.className)) continue; nodes[nodes.length] = node; } } return nodes; } </script> Bude-li mít někdo vteřinku se na to mrknout budu moc rád. Děkuji |
||
| Bubák Profil |
#2 · Zasláno: 8. 11. 2009, 23:30:30
Máš IE ve quirku a deklaraci pro csshover.htc zpřístipňuješ jen pro IE nižších verzí, než IE7.
Jen pro příště, kódy jsi sem vložil úplně zbytečně, ještě, že jsi dal aspoň adresu stránky. |
||
| habendorf Profil |
#3 · Zasláno: 9. 11. 2009, 19:01:36
No hlavně nevidím nikde definovanou třídu .hover.
|
||
| phanuel Profil * |
#4 · Zasláno: 10. 11. 2009, 14:51:55
habendorf:
„jsem si pomocí css hover vysouvací menu na“ Dá se zpříštupnit i pro IE7? Někde jsem to četl v angličtině, ale nějak jsem tomu neporozumněl. |
||
| Chamurappi Profil |
#5 · Zasláno: 10. 11. 2009, 14:53:55
Reaguji na phanula:
Vyhoď z csshover.htc řádek č. 34. |
||
| phanuel Profil * |
#6 · Zasláno: 11. 11. 2009, 15:09:14
Chamurappi:
„Vyhoď z csshover.htc řádek č. 34.“ Mohl bys prosímtě napsat obsah řádku - mám to pod kompresí, takže řádek č.34 neexistuje |
||
| Chamurappi Profil |
#7 · Zasláno: 11. 11. 2009, 15:14:33
Reaguji na phanula:
Nemohl. Přečti si ho z řádku č. 34 v kódu, který jsi sem vložil. |
||
| Plaváček Profil |
#8 · Zasláno: 11. 11. 2009, 16:35:45
phanuel:
Nebo ten řádek (nějak ho už najdeš) uprav takto: if(!/MSIE (5|6|7)/.test(navigator.userAgent)) return; A je to. |
||
| Chamurappi Profil |
#9 · Zasláno: 11. 11. 2009, 16:37:23
Reaguji na Plaváčka:
A co osmička? A další verze, které přijdou? |
||
| Plaváček Profil |
#10 · Zasláno: 11. 11. 2009, 17:00:28 · Upravil/a: Plaváček
Chamurappi:
„A co osmička? A další verze, které přijdou?“ Popravdě - nevím. Pro sedmičkovou verzi (pokud běží v quirku) ale tahle blbůstka funguje. Víc jsem zatím nepátral, protože rozbalovací navigaci nepoužívám zas tak moc často, vlastně prakticky vůbec. Ale mám pocit, že osmička už :hover umí, ne? |
||
| Chamurappi Profil |
#11 · Zasláno: 11. 11. 2009, 17:10:39
Reaguji na Plaváčka:
„Pro sedmičkovou verzi (pokud běží v quirku) ale tahle blbůstka funguje.“ Pro jakoukoliv verzi v quirku je tahle blbůstka nezbytná, pokud má :hover fungovat na <li>. Proto jsem mu radil tu kontrolu verze smazat úplně. |
||
|
Časová prodleva: 16 let
|
|||
0