层叠纸效果

前言

现在一种流行的设计是创建一个容器,并在里面堆叠其他纸,然后添加分层或三维样式。我们可以使用CSS来完成这个效果,而且还可以做成多种类型的堆叠纸设计。接下来我们将展示3个不同效果。

底部垂直层叠纸

这里的想法是,我们的内容容器是顶层纸,并且更多的纸堆在其下方,并且其边缘显示在顶层纸的底部。

层叠纸效果1

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属性。

层叠纸效果2

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;
}

混乱层叠纸

我们可以使用与上一个示例相同的伪元素技术,使纸页错开以创建的凌乱形态,这里会使用transform属性旋转底层纸页。(注意transform属性浏览器兼容性)。

层叠纸效果2

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;
}