2012-07-23 16 views
5

私はドロップシャドウを持つ2つのdivがあり、同じz-インデックスにあります。同じレベルのドロップシャドウを持つ2つのdiv

現在、お互いに影を投げかけています。

両方ともバックグラウンドでシャドウをキャストしたいが、お互いにシャドウを重ねることは望ましくない。これはどうすればいいですか?

+1

ここでいくつかのマークアップを投稿する –

+0

背景色を使用しますか? – Christoph

+0

http://jsfiddle.net/mrchimp/5WQc8/ - 上のdivが少し赤く見えます。 –

答えて

8

同じスタッキングレベルの2つの異なる要素を持つことはできません。要素には常に異なるスタッキングレベルがあります。それで、あなたの2番目の要素が最初の要素を陰にしているのです。

Z-indexは、非静的に配置された要素(相対、絶対)でのみ機能するので、どちらも役に立ちません。

IMOあなたはいくつかの小さなCSSハッキングなしであなたが望む効果を達成することはできません(追加のラッパー要素と組み合わされた要素の静的でない位置を宣言します - 子要素について)。

Example

しかし、私は間違っているなら、私を修正すること自由に感じなさい。

+0

私はそうかもしれないと思った。今のところ私はdivの1つのドロップシャドウを取り除くつもりです。理想的ではありませんが、今は十分です!応答していただきありがとうございます。 –

+0

@Mr_Chimp私の例を見て、これがあなたのニーズに合っているかどうかを見てください。 – Christoph

+0

私はそれを修正しましたが、誰かに別のアプローチがあるかどうかを確認するために質問を開いたままにしておきます。私が言うように、今は問題を避けていますが、それは大きな問題ではありませんが、私は人々がそれについてどうやって行くのか興味を持っています。再度、感謝します。 –

3

この単純なCSSトリックを使用して、擬似要素:afterを作成し、Z-インデックスをdivsより低く設定し、影を付けます。次のコードでは、それぞれdivの下に重なっていない影を落とします。作業例はhttp://jsfiddle.net/on38a8pz/1/です。

div { 
    position: relative; 
} 

div:after { 
    content: ''; 
    position: absolute; 
    top: 0; 
    left: 0; 
    width: 100%; 
    height: 100%; 
    box-shadow: 0 0 30px black; 
    z-index: -1; 
} 
関連する問題