ul.box {
position: relative;
z-index: 1; /* prevent shadows falling behind containers with backgrounds */
overflow: hidden;
list-style: none;
margin: 0;
padding: 0; }
ul.box li {
position: relative;
float: left;
width: 250px;
height: 150px;
padding: 0;
border: 1px solid #efefef;
margin: 0 30px 30px 0;
background: #fff;
-webkit-box-shadow: 0 1px 4px rgba(0, 0, 0, 0.27), 0 0 40px rgba(0, 0, 0, 0.06) inset;
-moz-box-shadow: 0 1px 4px rgba(0, 0, 0, 0.27), 0 0 40px rgba(0, 0, 0, 0.06) inset;
box-shadow: 0 1px 4px rgba(0, 0, 0, 0.27), 0 0 40px rgba(0, 0, 0, 0.06) inset; }
ul.box li:before,
ul.box li:after {
content: '';
z-index: -1;
position: absolute;
left: 10px;
bottom: 10px;
width: 70%;
max-width: 300px; /* avoid rotation causing ugly appearance at large container widths */
max-height: 100px;
height: 55%;
-webkit-box-shadow: 0 8px 16px rgba(0, 0, 0, 0.3);
-moz-box-shadow: 0 8px 16px rgba(0, 0, 0, 0.3);
box-shadow: 0 8px 16px rgba(0, 0, 0, 0.3);
-webkit-transform: skew(-15deg) rotate(-6deg);
-moz-transform: skew(-15deg) rotate(-6deg);
-ms-transform: skew(-15deg) rotate(-6deg);
-o-transform: skew(-15deg) rotate(-6deg);
transform: skew(-15deg) rotate(-6deg); }
ul.box li:after {
left: auto;
right: 10px;
-webkit-transform: skew(15deg) rotate(6deg);
-moz-transform: skew(15deg) rotate(6deg);
-ms-transform: skew(15deg) rotate(6deg);
-o-transform: skew(15deg) rotate(6deg);
transform: skew(15deg) rotate(6deg); }
请注意,这些框不要放在具有背景的另一个元素内,否则负 z-index 值(此功能需要此值)将使阴影位于该元素下方,并且不会显示。
非常感谢!!!这太棒了!
我将在我的网站中使用这种技术制作页面卷曲阴影。我正在考虑如何将其降级到 IE,但那是另一回事。
谢谢!
IE 不是浏览器。哈哈
非常棒的代码片段,看起来很棒
嗨,不错的代码片段,
但如果我在一个具有背景颜色的 div 中使用代码片段代码,它就会出现问题,我不明白为什么?
哦,我明白了。请忽略我的评论 :P
这是一个很好的代码片段,我喜欢这种阴影。通常我用图片来做,但现在...谢谢!
我快疯了,试图在包含背景属性的 div 内使其工作。
为什么负值是强制性的?为什么 css 不允许我为 :before 和 :after 提供比前面元素更低的(正)值?(即 1、2 和 3 而不是 -2、-1 和 auto)
我找到的唯一解决方案是为父 div 提供更低的(负)z-index 值,但这会使该 div 中的所有内容都变得无用。
对于落在父级背景颜色后面的阴影,您可以使用以下两种方法之一 - http://jsfiddle.net/D4qCm/1
尤里卡!我找到了解决方案!!即使嵌套在具有背景颜色或图像的 div 中,也可以做到这一点!
只需将 style="-webkit-transform:rotate(0deg);transform:rotate(0deg);-moz-transform:rotate(0deg);" 添加到具有 .page-curl 类的元素。
我想模仿 kde 的 quadros http://www.flickr.com/photos/martincasc/4373577269/,并在顶部添加文本。到目前为止,我已经为奇数列表元素创建了一个渐变,为偶数元素创建了一个相反的渐变。也许我可以实现它。
这确实不错,但在 IE 中不起作用。我在这里想出了一种跨浏览器实现它的方法……
http://betterwebshop.com/blog/2011/05/cross-browser-css-page-curl-shadow
非常酷,效果很好。
谢谢…
它在我的博客上运行正常:http://www.medspatherapy.com
如何只在一个角上增加卷曲?请有人告诉我。
这在 Firefox 的最新更新中不起作用。两天前,在我升级之前,它还可以工作。我在此浏览器上的任何网站上都看不到此效果。
它现在可以使用 skewX() 再次工作了——Firefox 中已删除了 skew() 支持。
http://jsfiddle.net/dropsoul/ts325/37/light/
谢谢 Christina,我在几个网站上使用了页面卷曲阴影效果,并注意到周末它们在 FireFox 中都消失了。现在需要回去更新我的样式表。
它确实为网站设计增添了一些趣味。谢谢
感谢这个很棒的想法。在尝试的过程中,我遇到了背景中图像的问题。有什么想法吗?
http://jsfiddle.net/BpgXC/7/
将 的 'z-index' 设置为 '-2' 可以解决问题。
我注意到,如果在元素周围添加边框,它会显示在阴影后面。我通过删除父元素的 z-index 值解决了此问题。
非常好,因为如果在具有效果的元素下方存在其他具有背景的元素,则效果不会被隐藏。
我正在寻找一个解决此问题的想法,并且没想到如果父元素具有相对位置和较大的 z-index 可以解决它。