CSS box-shadow on scrolled content
I want to have a div with an inset box-shadow that has scrolled content in it. Unfortunately, the box-shadow doesn't get casted on the elements within the content, but rather on the background, but I want it to cover the content elements as well.
I stumbled upon this solution: http://jsfiddle.net/HPkd3/ (via). The problem is, I can't get it to work with my scrolled setup; if I position the mask inside the scrolling div, the shadow scrolls away - and if I position it outside of the div, the scrollbar has the shadow cast upon it, which looks weird.
Any ideas how to get this right?
Edit: Some example code: http://jsfiddle.net/ZSpSS/2/
I want the red squares in this example covered with the shadow, while the shadow should be persist开发者_StackOverflow社区ent when I scroll through the content.
I totally have this working! Check out:
http://jsfiddle.net/yobert/6Ff4u/
Note the red background blocks correctly are "under" the shadows.
Caveats: Requires you to guess the size of the scrollbar in pixels. I bet there is a safe way to measure this with javascript though. If you only have a vertical scrollbar, this ends up being much simpler since you don't need to adjust the margin-bottom.
try this
box-shadow:1px 1px 1px 1px #000000 inset;
pointer-events: none;
Here is one possible solution.
I commented my CSS styles and you should easily understand my html markup. Here is what I did.
- Created two divs
- One is acting as the container for the one that has the inset box shadow
.outer
- The other one contains the inset box shadow
.inner-content
- I added
overflow:scroll
to the.inner-content
div to apply your scroll bar. ( you can also changeoverflow:scroll
tooverflow:auto
which will also give you a scroll bar
Have you tried something like this:
CSS:
#test{
width:500px;
height:200px;
overflow:auto;
-moz-box-shadow: inset 1px 1px 20px 4px black;
-webkit-box-shadow: inset 1px 1px 20px 4px black;
box-shadow: inset 1px 1px 20px 4px black;
}
HTML:
<div id="test"><p>
sadasd sadasd sadasd sadasd sadasd sadasd sadasd sadasd sadasd sadasd sadasd sadasd sadasd sadasd sadasd sadasd sadasd sadasd sadasd sadasd sadasd sadasd sadasd sadasd sadasd sadasd sadasd sadasd sadasd sadasd sadasd sadasd sadasd sadasd sadasd sadasd sadasd sadasd sadasd sadasd sadasd sadasd sadasd sadasd sadasd sadasd sadasd sadasd sadasd sadasd sadasd sadasd sadasd sadasd sadasd sadasd sadasd sadasd sadasd sadasd sadasd sadasd sadasd sadasd sadasd sadasd sadasd sadasd sadasd sadasd sadasd sadasd sadasd sadasd sadasd sadasd sadasd sadasd sadasd sadasd sadasd sadasd sadasd sadasd sadasd sadasd sadasd sadasd sadasd sadasd sadasd sadasd sadasd sadasd sadasd sadasd sadasd sadasd sadasd sadasd sadasd sadasd sadasd sadasd sadasd sadasd sadasd sadasd sadasd sadasd sadasd sadasd sadasd sadasd sadasd sadasd sadasd sadasd sadasd sadasd sadasd sadasd sadasd sadasd sadasd sadasd sadasd sadasd sadasd sadasd sadasd sadasd sadasd sadasd sadasd sadasd sadasd sadasd sadasd sadasd sadasd sadasd sadasd sadasd sadasd sadasd sadasd sadasd sadasd sadasd sadasd sadasd sadasd sadasd sadasd sadasd sadasd sadasd sadasd sadasd sadasd sadasd sadasd sadasd sadasd sadasd sadasd sadasd sadasd sadasd sadasd sadasd sadasd sadasd sadasd sadasd sadasd sadasd sadasd sadasd sadasd sadasd sadasd sadasd sadasd sadasd sadasd sadasd sadasd sadasd sadasd sadasd sadasd sadasd sadasd sadasd sadasd sadasd sadasd sadasd sadasd sadasd sadasd sadasd sadasd sadasd sadasd sadasd sadasd sadasd
<br /></p></div>
If you can give more details I can help with a more specific answer
精彩评论