Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Two divs with drop shadow on same level

Tags:

html

css

I have two divs that have drop shadows and are on the same z-index.

They are currently both casting a shadow on each other.

I would like them to both cast shadows on the background but NOT on each other. How do I do this?

like image 232
Mr_Chimp Avatar asked Jul 23 '12 12:07

Mr_Chimp


2 Answers

You can't have two different element with the same stacking level. Elements always have different stacking-levels. That's why your second Element shadows the first Element. (Without z-index the appearence in the DOM determines the stacking-level)

Z-index works only on non-static positioned elements (relative,absolute) so that won't help either.

IMO you can't achieve the effect you want without some little css-hacking (Declaring a non-static position on the elements combined with an additional wrapper-element - don't declare z-index on the parent but only on the child-elements).

Example

But please feel free to correct me if I am wrong.

like image 162
Christoph Avatar answered Oct 30 '22 05:10

Christoph


Use this simple CSS trick, just create pseudoelement :after, set its z-index lower than divs and give a shadow to it. Following code will drop non-overlaping shadows under each div. Working example at 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;
}
like image 27
MichalVales Avatar answered Oct 30 '22 06:10

MichalVales