internet explorer text-shadow + hover

时间:2012-07-05 20:27:57

标签: jquery css internet-explorer css3

我正在尝试在悬停时制作一个'unblurs'页面(删除文字阴影)。

这适用于IE以外的所有浏览器:http://mmhudson.com/brett.html

它不起作用,因为我在没有悬停元素时将颜色设置为'透明',并且IE过滤器'blur'继承了该颜色,因此文本阴影也是透明的。

如何使滤镜不继承或使其只有阴影不可见?

我目前正在使用插件,但如果可以的话,我可以使用常规的CSS。

http://jsfiddle.net/PaDwt/

注意html if IE block

我只需要支持IE8和IE9,但IE7和更早版本也会很好。

2 个答案:

答案 0 :(得分:0)

答案 1 :(得分:0)

问题不在于它是继承透明色,而是IE根本不支持文本阴影。

使用此stackoverflow.com/questions/6905658/css3-text-shadow-in-ie9

p.shadow { 
    filter: progid:DXImageTransform.Microsoft.Shadow(color=#0000FF,direction=45);
}

----------- -------------- EDIT

这是你要找的吗? http://jsfiddle.net/PaDwt/4/

-CSS

#paragraphs p{
  /*the width needs to be a set value, not a percentage*/
  width: 600px;
  /*blur all paragraphs*/
  color: transparent;
  text-shadow: 0px 0px 2px #666666;
  filter: progid:DXImageTransform.Microsoft.Blur(pixelradius=3);
}

-JS

$(document).ready(function(){
  if($.browser.msie) $("#paragraphs p").css("color", "black");
  $("#paragraphs p").mouseover(function(){
    var thisP = this;
    if($.browser.msie)
    {
      $("#paragraphs p").css({
        filter:"progid:DXImageTransform.Microsoft.Blur(pixelradius=3)"
      });
    }
    else{
      $("#paragraphs p").css({
        color:"transparent",
        textShadow:"0 0 2px #666",
      });
    }
    $(thisP).css({
      color:"#000",
      textShadow:"none",
      filter:"none"
    })
  });
  $("#paragraphs p").mouseout(function(){
    if($.browser.msie)
    {
      $("#paragraphs p").css({ 
        filter:"progid:DXImageTransform.Microsoft.Blur(pixelradius=3)"
      });
    }
    else
    {
      $("#paragraphs p").css({
        color:"transparent",
        textShadow:"0 0 2px #666"
      });
    }
  });
});​

这适用于IE9。