代码之家  ›  专栏  ›  技术社区  ›  dclowd9901

IE6 PNG替换:如何使嵌套的<a>可单击?

  •  0
  • dclowd9901  · 技术社区  · 14 年前

    为了这个问题的目的,考虑一下:

    <div class="has_transparent_png">
        <a href="foo.html">
            <span>
                <img src="logo.jpg" />
            </span>
        </a>
    </div>
    

    问题是: 在IE6中 <a>

    .has_transparent_png {
        background-image: url(images/transparentpng.png);
    }
    
    * html .has_transparent_png {
        behavior: expression((this.runtimeStyle.behavior="none")&&(this.pngSet?this.pngSet=true:(this.nodeName == "IMG" && this.src.toLowerCase().indexOf('.png')>-1?(this.runtimeStyle.backgroundImage = "none", this.runtimeStyle.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(src='" + this.src + "', sizingMethod='image')", this.src = "images/spacer.gif"):(this.origBg = this.origBg? this.origBg :this.currentStyle.backgroundImage.toString().replace('url("', '').replace('")', ''), this.runtimeStyle.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(src='" + this.origBg + "', sizingMethod='crop')", this.runtimeStyle.backgroundImage = "none")), this.pngSet=true));
    }
    

    我怎么才能做这个 <

    3 回复  |  直到 14 年前
        1
  •  1
  •   Carlos Pinto    14 年前

    不确定这是否有帮助,但似乎您正在设置DOM结构来修复IE6上的透明图像。您只需在特定ID上运行js函数,就可以使用如下脚本修复图像的透明度: http://homepage.ntlworld.com/bobosola/pnghowto.htm

    在页面底部执行以下操作:

    DD公司_迟来的png.fix(‘imgthatsneedsfix’);

        2
  •  0
  •   meder omuraliev    14 年前

    你可以试着做。。

    .has_transparent_png a { position:relative; zoom:1; }
    

    这不会一直奏效。。。

    另一种方法是使用同级div用png填充整个父div,然后将同级div添加到包含锚点且具有更高堆叠顺序的父div。

        3
  •  0
  •   dclowd9901    14 年前

    似乎没有办法严格地通过CSS做到这一点,而CSS正是我们想要达到的目标。

    推荐文章