IE8 中透明 PNG 周围的黑色边框

发布于 2024-11-28 03:02:25 字数 372 浏览 2 评论 0原文

我在 IE8 中的 jquery 滑块中遇到透明 PNG 文件周围黑色小边框的一些问题。它在所有浏览器(包括 IE6 和 7)中工作正常,但在 IE8 中不行。

你可以在这里看到它: http://www.socialogika.com/tabs/goliath/collection/

我已经尝试了在 stackoveflow 上找到的几个修复程序,但它们似乎都不是解决方案(还)...从 24 转向 PNG-8 解决了 Ie6 和 IE6 的问题。 7,但在 8 中仍然存在问题

有人能指出我一个可行的解决方案吗?

I'm experiencing some problemes with a black small border around transparent PNG files..in a jquery slider in IE8.. It works fine in all browsers (including IE6 & 7) but not in IE8.

you can see it here: http://www.socialogika.com/tabs/goliath/collection/

I allready tried several fixes found here on stackoveflow, but none of them seems to be the solution (yet)...turning to PNG-8 from 24 fixed the problem voor Ie6 & 7, but still havind problems in 8

Can someone point me to a working solution?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

合约呢 2024-12-05 03:02:25

让我知道这是否有帮助:http:// /channel9.msdn.com/forums/TechOff/257324-IE7-alpha-transparent-PNG--opacity/

我对 IE7 png 的不透明度问题进行了大量研究,并使用了两种解决方法,涵盖了大多数情况,但遗憾的是并非所有情况。

第一个已经在此线程中提到,即针对所需的不同不透明度使用不同的图像文件。当您只想显示状态时,此方法非常适合鼠标悬停和鼠标移出效果,但遗憾的是,当您想要设置不透明度动画时,此方法毫无用处。

第二种方法在大多数情况下都有效,但这取决于您的页面布局和设计。要伪造 div 的不透明度动画,您可以将虚拟的第二个 div 放置在要显示不透明度变化的真实 div 上。第二个 div 应该绝对定位并采用背景 div 的宽度和高度。然后根据您的页面设计为其指定背景颜色(最适合真实背景图像 png 的颜色),并根据您想要的效果设置该 div 上的不透明度动画以淡入或淡出。

因为无论如何您都会使用 javascript 来实现不透明动画,所以在需要效果时创建和插入新的 div 并在完成后将其删除是很简单的。这允许网站访问者仍然可以复制和粘贴或右键单击实际的 div 内容。

另外,也许尝试确认我的预感,即不透明度导致黑色边框显示:禁用所有淡入淡出效果,并让我知道图像是否正确渲染。

Let me know if this helps: http://channel9.msdn.com/forums/TechOff/257324-IE7-alpha-transparent-PNG--opacity/

I have done a lot of research into the IE7 png with opacity issue and have used two workaround which cover most, but sadly not all scenarios.

The first one has already been mentioned in this thread which is to have different image files for the different opacities needed. This method works for well for mouseover and mouseout effects when you just want to show state, but is sadly useless when you want to animate the opacity.

The second method will work most of the time but it depends on your pagelayout and design. To fake the opacity animation of a div you can position a dummy second div over the real div you want to show an opacity change on. The second div should be absolutely positioned and take on the width and height of the background div. Depending on your page design you then give it a background colour (whatever best suits the real background image png) and you animate the opacity on that div to fade in or out depending on the effect you are looking for.

Because you will be using javascript for the opacity animation anyway, it is simple to create and insert the new div when the effect is needed and remove it once you are done. This allows the actual divs content to still be copy and pasted or right clicked by visitors to the site.

Also, perhaps try confirming my hunch that it's the opacity that's causing the black border to show: disable all fade effects and let me know if the images render correctly.

公布 2024-12-05 03:02:25

好吧...尝试使用

.fadeTo()

DEMO

在任何情况下你都可以使用这个小修复:

$('#mages img').css({background: '#EDE7DE'});

或者为 IE 创建一个 if 语句,只需将 .fix 添加到所需的图像即可。 .fix 位于您的 CSS 文件中,为图像添加所需颜色的背景。

if ($.browser.msie && $.browser.version <= 8 )
{
$('#gallery img').addClass('fix');
}

Well... try using

.fadeTo()

DEMO

In any case you can use this little fix:

$('#mages img').css({background: '#EDE7DE'});

Or create an if statement for IE where you just add an .fix to the desired images. The .fix is in your CSS file, adding to images a background of the desired color.

if ($.browser.msie && $.browser.version <= 8 )
{
$('#gallery img').addClass('fix');
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文