247 行
6.1 KiB
Handlebars
247 行
6.1 KiB
Handlebars
<!DOCTYPE html>
|
|
<html lang="en">
|
|
<head>
|
|
<meta charset="UTF-8">
|
|
<meta content="width=device-width,initial-scale=1,user-scalable=no,viewport-fit=cover" name="viewport">
|
|
<title>{{ code }} {{ title }}</title>
|
|
<style>
|
|
* {
|
|
-webkit-box-sizing: border-box;
|
|
box-sizing: border-box
|
|
}
|
|
|
|
body {
|
|
padding: 0;
|
|
margin: 0
|
|
}
|
|
|
|
#error {
|
|
position: relative;
|
|
height: 100vh
|
|
}
|
|
|
|
#error .error {
|
|
position: absolute;
|
|
left: 50%;
|
|
top: 50%;
|
|
-webkit-transform: translate(-50%, -50%);
|
|
-ms-transform: translate(-50%, -50%);
|
|
transform: translate(-50%, -50%)
|
|
}
|
|
|
|
#error .error-bg {
|
|
position: absolute;
|
|
left: 0;
|
|
right: 0;
|
|
top: 0;
|
|
bottom: 0;
|
|
overflow: hidden
|
|
}
|
|
|
|
#error .error-bg > div {
|
|
position: absolute;
|
|
top: 0;
|
|
bottom: 0;
|
|
width: 1px;
|
|
background-color: #eee
|
|
}
|
|
|
|
#error .error-bg > div:nth-child(1) {
|
|
left: 20%
|
|
}
|
|
|
|
#error .error-bg > div:nth-child(2) {
|
|
left: 40%
|
|
}
|
|
|
|
#error .error-bg > div:nth-child(3) {
|
|
left: 60%
|
|
}
|
|
|
|
#error .error-bg > div:nth-child(4) {
|
|
left: 80%
|
|
}
|
|
|
|
#error .error-bg > div:after {
|
|
content: '';
|
|
position: absolute;
|
|
top: 0;
|
|
left: -.5px;
|
|
-webkit-transform: translateY(-160px);
|
|
-ms-transform: translateY(-160px);
|
|
transform: translateY(-160px);
|
|
height: 160px;
|
|
width: 2px;
|
|
background-color: #1cfafe
|
|
}
|
|
|
|
@-webkit-keyframes drop {
|
|
90% {
|
|
height: 20px
|
|
}
|
|
|
|
100% {
|
|
height: 160px;
|
|
-webkit-transform: translateY(calc(100vh + 160px));
|
|
transform: translateY(calc(100vh + 160px))
|
|
}
|
|
}
|
|
|
|
@keyframes drop {
|
|
90% {
|
|
height: 20px
|
|
}
|
|
|
|
100% {
|
|
height: 160px;
|
|
-webkit-transform: translateY(calc(100vh + 160px));
|
|
transform: translateY(calc(100vh + 160px))
|
|
}
|
|
}
|
|
|
|
#error .error-bg > div:nth-child(1):after {
|
|
-webkit-animation: drop 3s infinite linear;
|
|
animation: drop 3s infinite linear;
|
|
-webkit-animation-delay: .2s;
|
|
animation-delay: .2s
|
|
}
|
|
|
|
#error .error-bg > div:nth-child(2):after {
|
|
-webkit-animation: drop 2s infinite linear;
|
|
animation: drop 2s infinite linear;
|
|
-webkit-animation-delay: .7s;
|
|
animation-delay: .7s
|
|
}
|
|
|
|
#error .error-bg > div:nth-child(3):after {
|
|
-webkit-animation: drop 3s infinite linear;
|
|
animation: drop 3s infinite linear;
|
|
-webkit-animation-delay: .9s;
|
|
animation-delay: .9s
|
|
}
|
|
|
|
#error .error-bg > div:nth-child(4):after {
|
|
-webkit-animation: drop 2s infinite linear;
|
|
animation: drop 2s infinite linear;
|
|
-webkit-animation-delay: 1.2s;
|
|
animation-delay: 1.2s
|
|
}
|
|
|
|
.error {
|
|
max-width: 520px;
|
|
width: 100%;
|
|
padding: 20px;
|
|
text-align: center
|
|
}
|
|
|
|
.error .error-code {
|
|
height: 210px;
|
|
line-height: 210px
|
|
}
|
|
|
|
.error .error-code h1 {
|
|
font-family: oswald, sans-serif;
|
|
font-size: 188px;
|
|
font-weight: 700;
|
|
margin: 0;
|
|
text-shadow: 4px 4px 0 #1cfafe
|
|
}
|
|
|
|
.error h2 {
|
|
font-family: oswald, sans-serif;
|
|
font-size: 42px;
|
|
font-weight: 700;
|
|
margin: 0;
|
|
text-transform: uppercase;
|
|
letter-spacing: 1.6px
|
|
}
|
|
|
|
.error p {
|
|
font-family: lato, sans-serif;
|
|
color: #000;
|
|
font-weight: 400;
|
|
margin-top: 20px;
|
|
margin-bottom: 25px
|
|
}
|
|
|
|
.error a {
|
|
font-family: lato, sans-serif;
|
|
padding: 10px 30px;
|
|
display: inline-block;
|
|
color: #000;
|
|
font-weight: 400;
|
|
text-transform: uppercase;
|
|
-webkit-box-shadow: 0 0 0 2px #000, 2px 2px 0 2px #1cfafe;
|
|
box-shadow: 0 0 0 2px #000, 2px 2px 0 2px #1cfafe;
|
|
text-decoration: none;
|
|
-webkit-transition: .2s all;
|
|
transition: .2s all
|
|
}
|
|
|
|
.error a:not(:first-of-type) {
|
|
margin-left: 20px
|
|
}
|
|
|
|
.error a:hover {
|
|
background-color: #1cfafe;
|
|
-webkit-box-shadow: 0 0 0 0 #000, 0 0 0 2px #1cfafe;
|
|
box-shadow: 0 0 0 0 #000, 0 0 0 2px #1cfafe
|
|
}
|
|
|
|
.error-social {
|
|
margin-top: 35px
|
|
}
|
|
|
|
.error-social > a {
|
|
width: 40px;
|
|
height: 40px;
|
|
line-height: 40px;
|
|
padding: 0;
|
|
margin: 0 5px
|
|
}
|
|
|
|
.error-social > a:hover {
|
|
background-color: #1cfafe;
|
|
-webkit-box-shadow: 0 0 0 0 #000, 0 0 0 2px #1cfafe;
|
|
box-shadow: 0 0 0 0 #000, 0 0 0 2px #1cfafe
|
|
}
|
|
|
|
@media only screen and (max-width: 480px) {
|
|
.error .error-code {
|
|
height: 122px;
|
|
line-height: 122px
|
|
}
|
|
|
|
.error .error-code h1 {
|
|
font-size: 122px
|
|
}
|
|
|
|
.error h2 {
|
|
font-size: 26px
|
|
}
|
|
}
|
|
|
|
</style>
|
|
</head>
|
|
<body>
|
|
<div id="error">
|
|
<div class="error-bg">
|
|
<div></div>
|
|
<div></div>
|
|
<div></div>
|
|
<div></div>
|
|
</div>
|
|
<div class="error">
|
|
<div class="error-code">
|
|
<h1>{{ code }}</h1>
|
|
</div>
|
|
<h2>{{ title }}</h2>
|
|
<p>{{{ content }}}</p>
|
|
<p>{{ requestId }}</p>
|
|
<a href="/">回到首页</a>
|
|
<a href="mailto:admin@dev.cm">联系我们</a>
|
|
</div>
|
|
</div>
|
|
</body>
|
|
</html>
|