解决IE7以下版本不支持无A状态伪类的几种方法_ Div+Css教程-查字典教程网
解决IE7以下版本不支持无A状态伪类的几种方法
解决IE7以下版本不支持无A状态伪类的几种方法
发布时间:2016-12-29 来源:查字典编辑
摘要:在IE7以下版本一直是不支持无A状态伪类的,通常都要靠Javascript来解决的,最近经常有人问起此类问题,故整理了几种方法,脚本来自国外...

在IE7以下版本一直是不支持无A状态伪类的,通常都要靠Javascript来解决的,最近经常有人问起此类问题,故整理了几种方法,脚本来自国外网站,供大家参考。

方法一

javascript文件,来自Htmldog.

复制代码 代码如下:

functionsuckerfish(type,tag,parentId){

if(window.attachEvent){

window.attachEvent("onload",function(){

varsfEls=(parentId==null)?document.getElementsByTagName(tag):document.getElementById(parentId).getElementsByTagName(tag);

type(sfEls);

});

}

}

sfHover=function(sfEls){

for(vari=0;i<sfEls.length;i++){

sfEls[i].onmouseover=function(){

this.className+="sfhover";

}

sfEls[i].onmouseout=function(){

this.className=this.className.replace(newRegExp("sfhoverb"),"");

}

}

}

sfFocus=function(sfEls){

for(vari=0;i<sfEls.length;i++){

sfEls[i].onfocus=function(){

this.className+="sffocus";

}

sfEls[i].onblur=function(){

this.className=this.className.replace(newRegExp("sffocusb"),"");

}

}

}

suckerfish(sfHover,"INPUT");

suckerfish(sfFocus,"INPUT");

suckerfish(sfHover,"p");

脚本可改动的部分

//这里写入你需要效果的标签

suckerfish(sfHover,"INPUT");

suckerfish(sfFocus,"INPUT");

suckerfish(sfHover,"p");

CSS

input:focus,input.sffocus{

background:#F8F8F8;

color:#333333;

border:1pxsolidred;

}

input:hover,input.sfhover{

background:#EEE;

color:#369;

border:1pxsolid#069;

}

p:hover,p.sfhover{

background:#EEE;

color:#333;

border:1pxsolid#069;

}

p:hover,p.sfhover{

background:#EEE;

color:#333;

}

上面代码中第一个类是给支持CSS2的浏览器,第二个是给IE6及以下版本的。需注意的是,你给某标签设定了,那么整个页面内的这个标签都会沿用同一个样式。

方法二

javascript文件.

复制代码 代码如下:

varW3CDOM=(document.createElement&&document.getElementsByTagName);

//window.onload=pinballEffect;

functionpinballEffect()

{

if(!W3CDOM)return;

varallElements=document.getElementsByTagName('*');

varoriginalBackgrounds=newArray();

for(vari=0;i<allElements.length;i++)

{

if(allElements[i].className.indexOf('hovereffect')!=-1)

{

allElements[i].onmouseover=mouseGoesOver;

allElements[i].onmouseout=mouseGoesOut;

}

}

}

functionmouseGoesOver()

{

originalClassNameString=this.className;

this.className+="lay-on";

}

functionmouseGoesOut()

{

this.className=originalClassNameString;

}

pinballEffect();

脚本可改动的部分

1.if(allElements[i].className.indexOf('hovereffect')!=-1)

CSS

1..hovereffect{

2.Background:#CCC;

3.}

在需要应用效果的地方用class="hovereffect"调用。这种方法比较灵活。

方法三

使用网上常见的onmouseover、onmouseout这类东西,行为和结构不分离,不推荐使用。

相关阅读
推荐文章
猜你喜欢
附近的人在看
推荐阅读
拓展阅读
  • 大家都在看
  • 小编推荐
  • 猜你喜欢
  • 最新 Div+Css教程学习
    热门 Div+Css教程学习
    网页设计子分类