ゴールを影付きの泡のようなサムネイルをレンダリングする柔軟な方法は、HTMLで
http://min.us/moStWhsGd http://k.minus.com/jbkSDvCUDvhYcj.jpg
サイズと影が変更される場合があります。
私の最初のアイデアはもちろんpngオーバーレイでしたが、柔軟性に欠け、楽しいことでもありません。しかし、古いie-sのフォールバックとしては常に可能です。
また、回転したdivで「テール」をレンダリングすることも考えられましたが、その中に背景が一致するとピタになります。
もっと良い方法はありますか?キャンバスか、おそらくsvgのマスク? expにほとんどない。これらの技術では、始めるためのいくつかのヒントは非常に高く評価されます。
UPDATE:まあ、それは私がドキュメントやブラウザinconcistenciesをナビゲートのいくつかの時間後にSVG思い付いたものです:
- 影のためのクリッピングパスとSVGフィルタの両方を適用することは不可能と思われますhtml要素をCSSで取得するので、全体の記事を
<svg>
にレンダリングする必要があります。 feImage
要素2)foreignObject
とimg
またはdiv
の背景を持つ1)フィラーに画像を埋め込む2つの方法が見つかりました。最初の方法は、 FFとChromeの両方で動作します。この
<svg filter="url(#dropshadow)"> <rect x="0" y="0" width="120" height="120" filter="url(#imageFilter)" clip-path="url(#clipPath)"/> </svg>
のように(私はそれがオペラ座で働くとIE9をしようとしなかった作りに失敗しました)。しかし、この方法でFFの画像は、少なくともサイズ変更された場合にはぼやけて見え、Chromeでは元の画像よりも明るく見えます。
各画像に対して個別のフィルタを作成する必要があるため、研究の観点からのみ興味深いものになります。
第二の方法は、それはFFで完璧に動作しますが、クロムやオペラでもないが(IE9をしようとしなかった)
foreignObject
へのパスをクリッピング適用することができ、この<svg filter="url(#dropshadow)"> <foreignObject width="140" height="140" clip-path="url(#clipPath)"> <img src="img/ourImage.png" height="140" /> </foreignObject> </svg>
のように見えることができます。
FFだけが
clippingPath
の中の複数の要素をサポートしているようです:複数の四角形を追加すると、そこに複数の矩形が追加されます。ですから、Chromeで最初の方法を使うためには、InkScapeにpath
を作成しなければなりませんでしたが、FFでは2つの矩形、1つは小さく、もう1つは回転した "バブル"を作成しました。
ので、第二の方法は、それがかなり柔軟で使いやすい、かなりいい表示されます。 FF以外の唯一の他のブラウザでは、より良いクリッピングパスをサポートする場合は...ここで
はjsFiddle例は以下のとおりです。http://jsfiddle.net/B7593/11/ので、FFでのみ動作2つの長方形の組み合わせクリッピングパスで両方のバリアントを示し、http://jsfiddle.net/B7593/10/はInkscapeで生成されたパス要素を使用し、部分的に動作しますクロム。
UPDATE2:私には恥ずかしがりますが、画像をsvgに埋め込むには3番目で最も適切な方法があります:image elementです。
imo、あなたの最善の選択肢は、通常の長方形画像を超えるpng/gifマスクです... HTML/CSS/JSが簡単にこの効果を達成できると思ってください。 –
@Joseph、あなたは間違いないといえます。実際には、それは私がすでにやったことです。しかし、1)影の色やぼかしなどを変更する必要がある場合は、Photoshopingをもう一度必要とし、2)私のハッカーはスリープしない場合) –
...私が思いつくことができる最高のハードコーディングとbgと同じ色のマスクがたくさん必要です...そしてそれは影を持っていない... "失敗"という言葉では、しかし少なくともそれはかわいく見えるhttp://jsfiddle.net/ueSDd/ –