解决ie6下hover不识别问题
来源:互联网 发布:时光机器软件 编辑:程序博客网 时间:2024/05/19 13:22
终于找到了ie6下二级菜单不识别hover的问题,整理下已被自己和需要的朋友使用~
<attach event="ondocumentready" handler="parseStylesheets" /><script language="JScript">/*** Pseudos - V1.30.050121 - hover & active* ---------------------------------------------* Peterned - http://www.xs4all.nl/~peterned/* (c) 2005 - Peter Nederlof** Credits - Arnoud Berendsen * - Martin Reurings* - Robert Hanson** howto: body { behavior:url("csshover.htc"); }* ---------------------------------------------*/var currentSheet, doc = window.document, activators = {onhover:{on:'onmouseover', off:'onmouseout'},onactive:{on:'onmousedown', off:'onmouseup'}}function parseStylesheets() {//window.alert("hi");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(!(/(^|\s)(([^a]([^ ]+)?)|(a([^#.][^ ]+)+)):(hover|active)/i).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.*$/, ''); var elements = getElementsBySelect(affected); 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;node.attachEvent(events.on, function() { node.className += ' ' + className; });node.attachEvent(events.off, function() { node.className = node.className.replace(new RegExp('\\s+'+className, 'g'),''); });}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 classname = (/\.([a-z0-9_-]+)/i).exec(select); var identify = (/\#([a-z0-9_-]+)/i).exec(select); var tagName = select.replace(/(\.|\#|\:)[a-z0-9_-]+/i, ''); 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((identify && node.id != identify[1]) || (classname && !(new RegExp('\\b' + classname[1] + '\\b').exec(node.className)))) continue; nodes[nodes.length] = node; } } return nodes;}</script>
将此代码存为.htc文件
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=gb2312" /><title>hover</title><style type="text/css">body{ behavior:url("csshover.htc");}ul,li{list-style:none; margin:0; padding:0;}ul li{width:80px; height:30px; line-height:30px;}ul li ul {display:none; padding-left:10px;}ul li:hover ul {display:block;}</style></head><body><div> <ul> <li><a href="#">一级菜单</a> <ul> <li><a href="#">二级菜单</a></li> </ul> </li> </ul></div></body></html>
这是测试的html代码~
我上传到资源里以备使用。
- 解决ie6下hover不识别问题
- 解决IE6下hover失效问题
- :hover在IE6下的问题
- 两种办法解决IE6下非链接不支持hover的问题
- 解决ie6 css:hover 背景色不改变的方案
- IE6下hover失效
- IE6 下:hover 中bug解决了(纯CSS)
- 解决ie6不支持:hover、属性选择器等问题的方法
- css伪类hover ie6bug,揭开IE6下hover不显示原因
- :hover在IE6 and earlier下的问题
- a:hover伪类在IE6下的问题
- 解决ie6下兼容float 换行问题,解决ie6下padding的时候 宽度不自动扩展问题
- hover在IE6的问题
- Ubuntu 下解决 VirtualBox 不识别 USB 设备的问题
- ie6不继承a:hover img这种伪类用zoom:1解决【IE浏览器兼容】
- 关于li:hover伪类,以及各种除了a:hover在IE6下不生效的解决办法.
- 解决ie6下position:absolute不兼容问题
- 解决超链接访问后hover样式不出现的问题
- 说说win32多线程锁之临界区
- 【iphone游戏开发】iphone-Cocos2D游戏开发之一:游戏术语大解析
- 抽象类或接口的实例化问题
- 当一个表单中有多个按钮时,可以通过onclick()事件触发不同的action请求
- VC2010新增加对多线程的支持类
- 解决ie6下hover不识别问题
- 封装自己的静态库和应用
- 【iphone游戏开发】iphone-Cocos2D游戏开发之二:精灵表的详细讲解(一)和Zwoptex工具的使用
- Hive UDAF 开发
- 第十三章:windows内存体系结构
- DBCP开源数据库连接池的编写源码
- 【iphone游戏开发】iphone-Cocos2d游戏开发之三:精灵表的详细讲解(二)小鸟眨眼睛
- Linux下的祼跑搞定,开始学移植
- MySQL日期函数 小记