IE6 PNG替换:如何制作嵌套<a> clickable?</a>

时间:2010-09-27 20:02:34

标签: html css internet-explorer-6 image-replacement

就本问题而言,请考虑以下事项:

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

问题:在IE6中,<a>无法点击。这是我正在使用的PNG替换:

.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));
}

如何使<a>可点击?我无法控制HTML。只有CSS。提前谢谢。

3 个答案:

答案 0 :(得分:1)

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

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

DD_belatedPNG.fix( '#imgThatNeedsFix');

希望有所帮助。

答案 1 :(得分:0)

你可以尝试......

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

这并不总是有效......

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

答案 2 :(得分:0)

似乎无法通过CSS严格执行此操作,这是预期的目标。