2009-07-05 121 views
0

我的想法是,覆盖一些文本的透明PNG(透明度从0%到100%)都与CSS背景颜色相同,会淡出基本文本它。在相同颜色的CSS背景上对齐透明PNG

原来透明的PNG在它应该是透明的区域也是可见的。此外,即使我使用相同的十六进制值创建它们,PNG和CSS的颜色也不尽相同。

包含图像。我曾尝试在Illustrator,Photoshop和Fireworks中创建资源。我尝试用pngcrush,PNGSquash和ImageMagick去除gamma信息(gAMA)。 Firefox中的问题与Safari中的相同。

如果有人知道如何解决这个问题 - 或者甚至可能 - 我很乐意听到它!先谢谢你。

the gradient is visible even though transparent

+0

噢,我打算在下面的评论中提问,但是你可以发布你的代码(xhtml/css)和 - 如果可能的话 - 链接到一个现场演示,展示你到目前为止的内容? – 2009-07-05 13:04:50

回答

2

我不能马上解决您遇到的问题,但我可以提供替代文本褪色的解决方案,如果这是什么用途?

.text-to-fade {color: rgba(255,255,255,0.0) /* red: 255, green: 255, blue: 255, alpha: 0 */ 
       } 

0.0末尾的值是α值,并且范围可以从01,与0是不透明和1是透明的。根据我的实验,rgba在Firefox以外的浏览器上有问题。

也许

.text-to-fade {opacity: 0.5; /* for most browsers */ 
       filter: alpha(opacity=50); /* for IE */ 
       } 
+0

谢谢,我不知道那个CSS。但是,如果我理解正确,如果我将其不同的alpha值重复应用到底部3/4/5 /,那么这只能创建文本淡出效果?文本行? 我想要解决的是淡出文本,而不必编写一些计算行的逻辑 - 因为动态内容可能导致行数为“任何”。 – eferm 2009-07-05 12:51:24

+1

如果您使用浮动在这些行上的.png,会不会发生同样的问题?我很想修改我的答案并提供一个JS/jQuery解决方案(这将是修改CSS值所必需的)。我会尽力,看看我能否更符合您的要求,找到更好的解决方案。 – 2009-07-05 13:04:01

2

这似乎是一个不同颜色的原因是因为它是透明的,而不是因为颜色实际上是不同的。为了演示这一点,请打开支持图层的图像编辑器。创建一个白色底层和一个黑色顶层。将黑色图层的不透明度设置为50%,然后合并这些图层。使用颜色选择器来检查颜色。这将是#808080,而不是黑色。

它不衰落的原因是因为该颜色是可加的。说你的文字也是#808080:在有文字的地方,你有#808080覆盖#808080 - 而最终结果是#424242而不是取消你想要的。只有一个步骤,在网络浏览器中尝试做什么真的没有什么好方法。

要做的一件事就是使文本隐藏(可见性:隐藏;)与JavaScript。另一种选择是使用相对或绝对定位并设置z折射率这样的事情是这个样子:

  • 3:透明灰色
  • 2:按钮/任何其他对象
  • 1:不透明灰色
  • 0:文本

这将屏蔽掉的文字,留下其他任何部分可见。