2012-03-26 13 views
5

透明な背景のPNG画像にCSSベースのドロップシャドウを作成することは可能でしょうか?透明な背景のPNG画像にCSSシャドウを作成することはできますか?

おそらくCSS3、jquery、または最後にサーバー側ですか?私はacheiveしようとしています何の効果後

例:それは可能である

Example

かなり確信している場合、それはクロスブラウザが、それはうまく分解する場合に適用して喜んではないでしょうか?

+0

私はそれが可能であることを想像することはできません。ブラウザは、影を投げることが画像のマスキングであることをどのように知っていますか? – MetalFrog

+0

チュートリアルの画像は、ここで求めていることを正確に行う方法ではありません:http://lineandpixel.com/blog/png-shadow? –

+1

ありそうな複製:http://stackoverflow.com/questions/3186688/drop-shadow-for-png-image-in-css – RozzA

答えて

0

CSSは、画像の形状は、したがって、アウトラインを決定することはできませんし、それに影を適用することはできません、何であるかわかりません..あなたに入力し、オープンな技術の議論を追加すること自由に感じなさい。

イメージの黒いコピーを作成し、Zインデックス、方向オフセット、および一部の不透明度を使用してイメージの後ろに配置することができます。それはそれです。

+0

2つの画像を使ってpng内の影を作る前に、私は影をよくする直接pngで。 –

+0

ええ、それは本当にその時点で違いはありません。あなたはクライアント側でこれを解決することはできません。サーバー側のソリューションを検討する必要があります。 –

+0

@diodeus私はblobとしてイメージを取得し、javascriptを使ってデータを処理することができると思いますので、「できません」とは言わないでしょうが、「そうしたくありません」... :) – Christoph

0

不可能です。背景が透明であっても、イメージはまだ四角形であり、影は周囲の境界線に適用されます。

あなたができることは、pngにグラフィカルな影を直接置くことです。それは透明な背景の上で素晴らしい作品です。

8

YES! CSS3の透明な.pngに影をつけることは可能です!私はIE10でジャンクのように表示されていた1つのプロジェクトでこれを必要としました。ボックスシャドウを使用する代わりに、filter:drop-shadow()を使用します。構文はほとんど同じです。ここでの記事です:link

最終的な解決策は、(リンクブレーク場合には)これです:

.filter-drop-shadow { 
    -webkit-filter: drop-shadow(0 1px 2px rgba(0,0,0,.5)); 
    -moz-filter: drop-shadow(0 1px 2px rgba(0,0,0,.5)); 
    -ms-filter: drop-shadow(0 1px 2px rgba(0,0,0,.5)); 
    -o-filter: drop-shadow(0 1px 2px rgba(0,0,0,.5)); 
    filter: drop-shadow(0 1px 2px rgba(0,0,0,.5)); 
} 
+1

Aaaand私はそれを見つけた!ボックスシャドウを使用する代わりに、filter:drop-shadow()を使用します。構文はほとんど同じです。記事は次のとおりです。[link](http://bricss.net/post/33158273857/box-shadow-vs-filter-drop-shadow) –

+0

あなたのコメントはあなたの答えより貴重です。コメントを編集する必要はありません。 – looper

+0

完了。先端に感謝します。 –

関連する問題