前言
现在一种流行的设计是创建一个容器,并在里面堆叠其他纸,然后添加分层或三维样式。我们可以使用CSS来完成这个效果,而且还可以做成多种类型的堆叠纸设计。接下来我们将展示3个不同效果。
底部垂直层叠纸
这里的想法是,我们的内容容器是顶层纸,并且更多的纸堆在其下方,并且其边缘显示在顶层纸的底部。
1
| <div class="paper"></div>
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
| .paper { background-color: #fff; position: relative; padding: 30px; }
.paper, .paper::before, .paper::after { box-shadow: 2px 1px 1px rgba(0,0,0,0.15); }
.paper::before, .paper::after { content: ""; position: absolute; width: 100%; height: 100%; background-color: #eee; }
.paper::before { left: 7px; top: 5px; z-index: -1; }
.paper::after { left: 12px; top: 10px; z-index: -2; }
|
对角层叠纸
这是一种效果使用的方法略有不同,我们使用::before和::after伪元素来创建其他纸张,而不是前面的示例中使用的box-shadow属性。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33
| .paper { background-color: #fff; position: relative; padding: 30px; }
.paper, .paper::before, .paper::after { box-shadow: 2px 1px 1px rgba(0,0,0,0.15); }
.paper::before, .paper::after { content: ""; position: absolute; width: 100%; height: 100%; background-color: #eee; }
.paper::before { left: 7px; top: 5px; z-index: -1; }
.paper::after { left: 12px; top: 10px; z-index: -2; }
|
混乱层叠纸
我们可以使用与上一个示例相同的伪元素技术,使纸页错开以创建的凌乱形态,这里会使用transform属性旋转底层纸页。(注意transform属性浏览器兼容性)。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35
| .paper { background: #fff; padding: 30px; position: relative; }
.paper, .paper::before, .paper::after { box-shadow: 1px 1px 1px rgba(0,0,0,0.25); border: 1px solid #bbb; }
.paper::before, .paper::after { content: ""; position: absolute; height: 95%; width: 99%; background-color: #eee; }
.paper::before { right: 15px; top: 0; transform: rotate(-1deg); z-index: -1; }
.paper::after { top: 5px; right: -5px; transform: rotate(1deg); z-index: -2; }
|