2011-05-15 93 views
10

我想要一个带有滚动内容的插入框阴影的div。不幸的是,box-shadow不会在内容中的元素上播放,而是在背景上播放,但我希望它覆盖内容元素。滚动内容的CSS框阴影

我偶然发现了这个解决方案:http://jsfiddle.net/HPkd3/via)。问题是,我无法让它与我的滚动设置一起工作;如果我将面罩放置在滚动div内,阴影就会滚动 - 如果我将它放在div的外面,则滚动条上会留下阴影,看起来很奇怪。

任何想法如何得到这个权利?

编辑:一些示例代码:http://jsfiddle.net/ZSpSS/2/

我想在这个例子中布满阴影的红色正方形,而阴影应该是持久的,当我通过内容滚动。

回答

-1

您是否尝试过这样的事情:

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> 

如果你能提供更多的细节,我可以用一个更具体的帮助回答

0

Here is one possible solution.

我评论了我的CSS样式,你应该很容易理解我的html标记。这是我做的。

  1. 创建两个div
  2. 一种是充当具有一个容器中的插图框阴影.outer
  3. 另一种包含插图框阴影.inner-content
  4. 我加overflow:scroll.inner-content DIV应用您的滚动条。 (你也可以改变overflow:scrolloverflow:auto这也会给你一个滚动条
+1

这就是现在的我。考虑对您的代码进行此修改:http://jsfiddle.net/ZSpSS/1/阴影不包含红色框。 – flyx 2011-05-15 15:46:48

+0

您想将覆盖内容的红框作为蒙版覆盖? – breezy 2011-05-15 15:48:43

+0

不,我只想让影子像其他任何东西一样显示在红框上。请参阅我的问题中的编辑。 – flyx 2011-05-15 15:56:03

4

我完全有这个工作退房:

http://jsfiddle.net/yobert/6Ff4u/

注意红色背景块正确的“下”阴影

注意事项:要求你以像素为单位猜测滚动条的大小,我敢打赌,有一种安全的方法可以用javascript来测量它,如果你只有一个垂直滚动条,因为您不需要调整边距底部,因此更简单。

+0

即使在图像上也是如此。大把戏,谢谢! http://jsfiddle.net/6Ff4u/30/ – 2014-06-10 18:50:18

0

试试这个

box-shadow:1px 1px 1px 1px #000000 inset; pointer-events: none;

+0

尽管这个答案并不完整,但这是完全合法的解决方案,我将这种技术与以下方法结合使用:在选择器将阴影放在内容块上方之前,指针事件将确保所有点击都会通过。 p.s .:指针事件是一个新功能。 – Andy 2013-11-18 11:13:28