Any way to get box-shadow on left & right (horizontal?) sides only with no hacks or images. I am using:
box-shadow: 0 0 15px 5px rgba(31, 73, 125, 0.8);
But it gives shadow all around.
I have no borders around the elements.
Any way to get box-shadow on left & right (horizontal?) sides only with no hacks or images. I am using:
box-shadow: 0 0 15px 5px rgba(31, 73, 125, 0.8);
But it gives shadow all around.
I have no borders around the elements.
Another way is with:
overflow-y:hidden
on the parent with padding.http://jsfiddle.net/qqx221c8/
I know this is a late addition but I wasn't satisfied with the rounded top and bottom to the shadow present in Deefour's solution so created my own.
See demo here.
Inset
box-shadow;
creates a nice uniform shadow with the top and bottom cut off:To use this effect on the sides of your element, create two pseudo elements
:before
and:after
positioned absolutely on the sides of the original element.NICE INSET SHADOW ON LEFT AND RIGHT SIDES FOR DIVS, IMAGES OR INNER CONTENTS
For a nice inset shadow in right and left sides on images, or any other content, use it this way
***The z-index:-1 does a nice trick when showing images or inner objects with insets
You can get close with multiple box-shadows; one for each side
http://jsfiddle.net/YJDdp/
Edit
Add 2 more box-shadows for the top and bottom up front to mask out the that bleeds through.
http://jsfiddle.net/LE6Lz/
Another idea could be creating a dark blurred pseudo element eventually with transparency to imitate shadow. Make it with slightly less height and more width i.g.
Classical approach: Negative spread
CSS box-shadow uses 4 parameters: h-shadow, v-shadow, blur, spread:
The v-shadow (verical shadow) is set to 0.
The blur parameter adds the gradient effect, but adds also a little shadow on vertical borders (the one we want to get rid of).
Negative spread reduces the shadow on all borders: you can play with it trying to remove that little vertical shadow without affecting too much the one obn the sides (it's easier for small shadows, 5 to 10px.)
Here a fiddle example.
Second approach: Absolute div on the side
Add an empty div in your element, and style it with absolute positioning so it doesen't affect the element content.
Here the fiddle with an example of left-shadow.
Third: Masking shadow
If you have a fixed background, you can hide the side-shadow effect with two masking shadows having the same color of the background and blur = 0, example:
I've added again a negative spread (-3px) to the black shadow, so it doesn't stretch beyond the corners.
Here the fiddle.