2009-07-05 119 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:文本

這將屏蔽掉的文字,留下其他任何部分可見。