IE6不兼容hover已解决

新建一个csshover.htc文件,一下是csshover.htc内容

<public:attach event="ondocumentready" onevent="CSSHover()" />
<script>
/**
 * Whatever:hover - V3.11
 * http://www.xs4all.nl/~peterned/
 *
 * Copyright (c) 2009 Peter Nederlof
 * Licensed under the LGPL license
 * http://creativecommons.org/licenses/LGPL/2.1
 */
window.CSSHover=(function(){var m=/(^|\s)((([^a]([^ ]+)?)|(a([^#.][^ ]+)+)):(hover|active|focus))/i;var n=/(.*?)\:(hover|active|focus)/i;var o=/[^:]+:([a-z\-]+).*/i;var p=/(\.([a-z0-9_\-]+):[a-z]+)|(:[a-z]+)/gi;var q=/\.([a-z0-9_\-]*on(hover|active|focus))/i;var s=/msie (5|6|7)/i;var t=/backcompat/i;var u={index:0,list:[‘text-kashida‘,‘text-kashida-space‘,‘text-justify‘],get:function(){return this.list[(this.index++)%this.list.length]}};var v=function(c){return c.replace(/-(.)/mg,function(a,b){return b.toUpperCase()})};var w={elements:[],callbacks:{},init:function(){if(!s.test(navigator.userAgent)&&!t.test(window.document.compatMode)){return}var a=window.document.styleSheets,l=a.length;for(var i=0;i<l;i++){this.parseStylesheet(a[i])}},parseStylesheet:function(a){if(a.imports){try{var b=a.imports;var l=b.length;for(var i=0;i<l;i++){this.parseStylesheet(a.imports[i])}}catch(securityException){}}try{var c=a.rules;var r=c.length;for(var j=0;j<r;j++){this.parseCSSRule(c[j],a)}}catch(someException){}},parseCSSRule:function(a,b){var c=a.selectorText;if(m.test(c)){var d=a.style.cssText;var e=n.exec(c)[1];var f=c.replace(o,‘on$1‘);var g=c.replace(p,‘.$2‘+f);var h=q.exec(g)[1];var i=e+h;if(!this.callbacks[i]){var j=u.get();var k=v(j);b.addRule(e,j+‘:expression(CSSHover(this, "‘+f+‘", "‘+h+‘", "‘+k+‘"))‘);this.callbacks[i]=true}b.addRule(g,d)}},patch:function(a,b,c,d){try{var f=a.parentNode.currentStyle[d];a.style[d]=f}catch(e){a.runtimeStyle[d]=‘‘}if(!a.csshover){a.csshover=[]}if(!a.csshover[c]){a.csshover[c]=true;var g=new CSSHoverElement(a,b,c);this.elements.push(g)}return b},unload:function(){try{var l=this.elements.length;for(var i=0;i<l;i++){this.elements[i].unload()}this.elements=[];this.callbacks={}}catch(e){}}};var x={onhover:{activator:‘onmouseenter‘,deactivator:‘onmouseleave‘},onactive:{activator:‘onmousedown‘,deactivator:‘onmouseup‘},onfocus:{activator:‘onfocus‘,deactivator:‘onblur‘}};function CSSHoverElement(a,b,c){this.node=a;this.type=b;var d=new RegExp(‘(^|\\s)‘+c+‘(\\s|$)‘,‘g‘);this.activator=function(){a.className+=‘ ‘+c};this.deactivator=function(){a.className=a.className.replace(d,‘ ‘)};a.attachEvent(x[b].activator,this.activator);a.attachEvent(x[b].deactivator,this.deactivator)}CSSHoverElement.prototype={unload:function(){this.node.detachEvent(x[this.type].activator,this.activator);this.node.detachEvent(x[this.type].deactivator,this.deactivator);this.activator=null;this.deactivator=null;this.node=null;this.type=null}};window.attachEvent(‘onbeforeunload‘,function(){w.unload()});return function(a,b,c,d){if(a){return w.patch(a,b,c,d)}else{w.init()}}})();
</script>

在要hover的页面的head中添加代码

<!--[if IE 6]>
	<style>
	        body {behavior: url(csshover.htc);}
	</style>
<![endif]-->

这样IE6就可以实现hover属性了

时间: 2024-10-13 12:14:01

IE6不兼容hover已解决的相关文章

ie6不兼容属性及其解决(1)

1.Q:IE6怪异解析之padding与border算入宽高 原因:未加文档声明造成非盒模型解析 A:加入文档声明<!doctype html> 2.Q:IE6在块元素.左右浮动.设定marin时造成margin双倍(双边距) A:display:inline 3.其实是同一种bug 1)字体大小为奇数之边框高度少1px A:字体大小设置为偶数或line-height为偶数 2)line-height,文本垂直居中差1px A:padding-top代替line-height居中,或line-

IE6不支持:hover伪类效果的解决办法

:hover是在CSS中用来制作效果最常用到的一个伪类,比如:标签或div上的鼠标悬停效果 li:hover,div:hover等. 但这种效果是css2及以上版本才添加的,对于只支持css1的浏览器就显示不出来. 在IE6中只兼容a:hover,要使用li:hover或div:hover,需引用一个文件使其兼容: csshover.htc (点击直接查看) 放在网站的根目录下,并在css文件(或者<style>标签)中,加上 body { behavior:url("...cssh

IE6不支持li:hover的解决办法,一句代码让IE6支持li:hover

如果不是因为工作需要,我根本不会理会IE6的兼容问题,甚至我都不想理会IE的所有内核,不过IE9用了下,我还是重新对IE报以期待的.话题扯远了,下面回到话题上来吧.这次要说的内容就是,如果让IE支持li:hover(还有之类的span:hover.div:hover),用过的都应该差不多清楚,IE6只能识别a:hover,但有时候用UL.LI做下拉列表,IE6就一直让我很头疼.有人用的解决办法可能第一反应就是去网上找相关的JS来代替hover,其实有个超级简单的方法,就是在LI标记里加一个A标记

windows10下安装Microsoft Visual Studio 2013.4 Community enu中文语言包出错,提示“”程序兼容模式已打开.请将其关闭”的解决方法

原来win8系统用着有点慢,就选择重新安装系统,安装了win10预览版,感觉确实很不一样,呵呵.在安装了vs2013社区版后,默认是英文版的,因为英文不太好,需要安装简体中文语言包,但是安装时一直报“程序兼容模式已打开,请将其关闭然后重新运行安装程序”, 在使用兼容win8模式安装后仍然提示这个,郁闷了好几天,后来在网上找到一个解决办法,记录如下: 使用命令提示符打开vs_langpack.exe,在后面添加 /Uninstall,类似这样D:\tools\vslang>vs_langpack.

解决ie6不兼容透明图片

解决ie6不兼容透明图片有好多方法. 如果想同时解决兼容png8和png24的图片,建议同时引入pngfix.js和dd_belatedPng.js文件,如下: <!--[if IE 6]><script src="../js/pngfix.min.js"><script type="text/javascript" src="http:../js/DD_belatedPNG.js"></script&g

IE6下兼容问题(转载)

()1.终极方法:条件注释 <!--[if lte IE 6]> 这段文字仅显示在 IE6及IE6以下版本. <![endif]--> <!--[if gte IE 6]> 这段文字仅显示在 IE6及IE6以上版本. <![endif]--> <!--[if gt IE 6]> 这段文字仅显示在 IE6以上版本(不包含IE6). <![endif]--> <!--[if IE 5.5]> 这段文字仅显示在 IE5.5. &

浏览器兼容问题与解决方法

浏览器兼容问题是指,不同厂商开发的浏览器针对同一段代码的不同解析,造成页面展示效果出现差异的情况,很多时候为了追求显示效果的一直,前端开发人员就要针对不同兼容问题应用相应的方法处理,达到效果一致的目的. 下面这些是平时开发过程中遇到的,做个汇总,方便查阅. 1.<!DOCTYPE HTML>文档类型的声明 产生条件:IE6浏览器,当我们没有书写这个文档声明的时候,会触发IE6浏览器的怪异解析现象: 解决办法:书写文档声明. 2.横向双外边距 产生条件:在IE6中块元素浮动后(左浮左margin

IE6部分兼容问题

border-style:dotted 点线 IE6不兼容 (除了solid以外,其它都有兼容问题,不完全一样) a IE6 不支持a以外的所有标签伪类,IE6以上版本支持所有标签的hover伪类. inline-block IE6 7不支持块元素标签的inline-block 空标签清浮动 IE6 最小高度 19px:就是font-size=0后,IE6下还有2px偏差.通过设置overflow:hidden来隐藏设置高度以外的高度. after伪类 IE 6 7不支持after伪类清除浮动,

ie6的兼容问题总结

1.浮动兼容性 1.1IE6下的双边距BUG 在IE6下,块元素有浮动和横向margin的时候,最边上元素的横向margin值会被放大成两倍 解决办法: display:inline; 1.2IE6,7下li的间隙 在IE6,7下li本身没浮动,但是li内容有浮动的时候,li下边就会产生4px的间隙 解决办法: 1.给li加浮动(但是width就变为由自适应内容,所以还要加宽度) 2.给li加vertical-align:top/middle/bottom; ps:当li间隙问题,和最小高度问题