哪个是优越的,CSS透明度或PNG透明度?

时间:2009-02-14 20:42:09

标签: css png transparency

我应该使用PNG透明度还是CSS透明度?

我的第一直觉是使用CSS。但是我听说IE中的过滤器很慢,而且我会用PNG(忽略IE6)获得更好的结果。

但是从个人经验来看,我知道FF3的PNG透明度很慢。

对此有明确的答案吗?

感谢。

5 个答案:

答案 0 :(得分:12)

它们是针对两个不同问题的两种不同解决方案。 CSS透明度(我假设您指的是不透明度属性)将使整个元素(其边框,背景和内容)透明,而Alpha PNG透明度仅在您使用图像的情况下有用,例如元素背景

我无法想到很多情况下你可以使用相同的效果。

当然有RGBA colours in CSS3,但浏览器支持目前太低,无法在面向公众的网站/应用程序中成为可行选项。

P.S。我不能说我自己遇到任何FF3 alpha PNG性能问题。


评论后续行动:

行。在那种情况下,我会选择CSS opacity属性。

虽然IE6中的过滤器性能可能不是最佳,但这意味着您不必浪费带宽和图像上的额外HTTP请求。另外,如果你想让图像在IE6中工作,你必须使用AlphaImageLoader,我确信它会比alpha过滤器慢(如果不慢)。

答案 1 :(得分:6)

我刚刚在Mac上的Firefox 3.0.11中进行了一次快速的非科学测试。

我的测试是覆盖div并反复上下滚动。

一个人用过css:

background: #000; opacity:0.8;

另一个使用了相同的10px 24位PNG。

我使用活动监视器测量了以下结果(所以猜测,而不是确切)

Firefox 3.0.11

CSS不透明度:大约60%的CPU使用率。

PNG:大约20%的CPU使用率。

Safari 4.0:

CSS不透明度:大约80%(峰值为120%!)

PNG:约76%(完全没有峰值)

因此,就性能而言,似乎PNG是胜利者。

答案 2 :(得分:4)

使用png 24位时,IE(包括8)中存在MEMORY LEAK!请注意。

http://robertnyman.com/2009/05/26/serious-memory-leak-issue-with-24-bit-png-images-with-alpha-transparency-in-internet-explorer/

我使用pngs和一些jquery来滑动一些文本,脚本很慢!我删除了后台png,脚本很好。

答案 3 :(得分:1)

PNG透明度可以做CSS无法做到的事情 - PNG alpha通道透明度可以为图像的不同部分提供不同程度的部分透明度,而CSS不透明度则无法做到这一点。

答案 4 :(得分:0)

虽然CSS可能是“正确”的方式,但我认为PNG更安全,更容易,更好实现。