2013/03/11

rgba()とfilterで背景だけを透過させる。

"背景だけ"を透過させたい時には、background-colorにrgba()で色と不透明度を指定してやるだけでOKです。 ・・・最近のブラウザは。 rgba()に対応してないブラウザ、まぁ主にアレですが・・・にもオリジナルな素晴らしい機能filter: alpha()があります。 filter: alpha(opacity=50)とやると要素の不透明度が50%になるというやつです。 0.5じゃなくて50と指定するところもまた強い自己主張を感じますね。昔気質とでも言いましょうか。 しかし、この素敵機能filter: alpha()では、"背景だけ"でなく子要素含め、すべて透過してしまいます。 とても面倒見が良いです。 しかし、今回のように"背景だけ"に透過を適用したい。そんな時は"DirectX FilterのGradient Filter"の出番です。 これを使って背景にグラデーションしないグラデーションを適用してやるのです。
Enabled = 0 / 1 1(true)でグラデーション機能の有効化。デフォルトは1。 GradientType = 0 / 1 グラデーションの方向。0は縦方向。1は横方向。 StartColorStr = #00000000~#FFFFFFFF なんかちょっと長いここが今回のポイント! グラデーションの開始の透明度+色をaRGB形式で指定します。aは00(透明)~FF(不透明) EndColorStr = #00000000~#FFFFFFFF グラデーションの終了の透明度+色。
// 白の半透明 filter: progid:DXImageTransform.Microsoft.Gradient(GradientType=0,StartColorStr=#99ffffff,EndColorStr=#99ffffff); background-color: rgba(255, 255, 255, 0.5);

0 件のコメント:

コメントを投稿