213 lines
5.0 KiB
HTML
213 lines
5.0 KiB
HTML
<!DOCTYPE html>
|
|
<html lang="zh-CN">
|
|
<head>
|
|
<meta charset="UTF-8" />
|
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
|
<title>404 - 页面不存在</title>
|
|
<link rel="icon" href="/favicon.ico" />
|
|
<style>
|
|
:root {
|
|
color-scheme: light;
|
|
--bg-start: #f5f7fa;
|
|
--bg-end: #e8ecf3;
|
|
--card-bg: rgba(255, 255, 255, 0.92);
|
|
--text-primary: #1f2d3d;
|
|
--text-secondary: #6b7280;
|
|
--accent: #409eff;
|
|
--accent-hover: #66b1ff;
|
|
--border: rgba(64, 158, 255, 0.12);
|
|
--shadow: 0 20px 50px rgba(31, 45, 61, 0.12);
|
|
}
|
|
|
|
* {
|
|
box-sizing: border-box;
|
|
}
|
|
|
|
body {
|
|
margin: 0;
|
|
min-height: 100vh;
|
|
font-family: Inter, -apple-system, BlinkMacSystemFont, 'Segoe UI', 'PingFang SC', 'Hiragino Sans GB', 'Microsoft YaHei', sans-serif;
|
|
background: linear-gradient(135deg, var(--bg-start), var(--bg-end));
|
|
color: var(--text-primary);
|
|
}
|
|
|
|
.error-page {
|
|
min-height: 100vh;
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
padding: 32px;
|
|
}
|
|
|
|
.error-card {
|
|
width: min(960px, 100%);
|
|
background: var(--card-bg);
|
|
border: 1px solid var(--border);
|
|
border-radius: 24px;
|
|
box-shadow: var(--shadow);
|
|
backdrop-filter: blur(10px);
|
|
display: flex;
|
|
gap: 48px;
|
|
align-items: center;
|
|
padding: 56px;
|
|
}
|
|
|
|
.error-content {
|
|
flex: 1;
|
|
}
|
|
|
|
.error-code {
|
|
margin: 0;
|
|
font-size: clamp(64px, 12vw, 110px);
|
|
line-height: 1;
|
|
color: var(--accent);
|
|
letter-spacing: 4px;
|
|
}
|
|
|
|
.error-title {
|
|
margin: 20px 0 12px;
|
|
font-size: 30px;
|
|
line-height: 1.3;
|
|
}
|
|
|
|
.error-message {
|
|
margin: 0;
|
|
color: var(--text-secondary);
|
|
font-size: 16px;
|
|
line-height: 1.8;
|
|
}
|
|
|
|
.error-actions {
|
|
margin-top: 32px;
|
|
display: flex;
|
|
flex-wrap: wrap;
|
|
gap: 14px;
|
|
}
|
|
|
|
.action-button {
|
|
appearance: none;
|
|
border: none;
|
|
border-radius: 999px;
|
|
padding: 12px 22px;
|
|
font-size: 15px;
|
|
cursor: pointer;
|
|
text-decoration: none;
|
|
transition: transform 0.2s ease, box-shadow 0.2s ease, background-color 0.2s ease;
|
|
display: inline-flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
}
|
|
|
|
.action-button:hover {
|
|
transform: translateY(-1px);
|
|
}
|
|
|
|
.action-button.primary {
|
|
background: var(--accent);
|
|
color: #fff;
|
|
box-shadow: 0 12px 24px rgba(64, 158, 255, 0.24);
|
|
}
|
|
|
|
.action-button.primary:hover {
|
|
background: var(--accent-hover);
|
|
}
|
|
|
|
.action-button.secondary {
|
|
background: #fff;
|
|
color: var(--text-primary);
|
|
border: 1px solid rgba(31, 45, 61, 0.12);
|
|
}
|
|
|
|
.error-illustration {
|
|
flex: 0 0 320px;
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
}
|
|
|
|
.illustration-shell {
|
|
width: 100%;
|
|
aspect-ratio: 1 / 1;
|
|
border-radius: 32px;
|
|
background: linear-gradient(160deg, rgba(64, 158, 255, 0.12), rgba(64, 158, 255, 0.02));
|
|
border: 1px solid rgba(64, 158, 255, 0.14);
|
|
position: relative;
|
|
overflow: hidden;
|
|
}
|
|
|
|
.illustration-shell::before,
|
|
.illustration-shell::after {
|
|
content: '';
|
|
position: absolute;
|
|
border-radius: 50%;
|
|
background: rgba(64, 158, 255, 0.12);
|
|
}
|
|
|
|
.illustration-shell::before {
|
|
width: 180px;
|
|
height: 180px;
|
|
top: -30px;
|
|
right: -30px;
|
|
}
|
|
|
|
.illustration-shell::after {
|
|
width: 120px;
|
|
height: 120px;
|
|
left: -20px;
|
|
bottom: -20px;
|
|
}
|
|
|
|
.illustration-center {
|
|
position: absolute;
|
|
inset: 0;
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
font-size: clamp(72px, 10vw, 120px);
|
|
font-weight: 800;
|
|
color: rgba(64, 158, 255, 0.85);
|
|
letter-spacing: 6px;
|
|
}
|
|
|
|
@media (max-width: 900px) {
|
|
.error-card {
|
|
flex-direction: column;
|
|
padding: 36px 24px;
|
|
gap: 28px;
|
|
}
|
|
|
|
.error-illustration {
|
|
flex-basis: auto;
|
|
width: min(320px, 100%);
|
|
}
|
|
|
|
.error-title {
|
|
font-size: 24px;
|
|
}
|
|
}
|
|
</style>
|
|
</head>
|
|
<body>
|
|
<main class="error-page">
|
|
<section class="error-card">
|
|
<div class="error-content">
|
|
<h1 class="error-code">404</h1>
|
|
<h2 class="error-title">抱歉,你访问的页面不存在</h2>
|
|
<p class="error-message">
|
|
当前地址可能已失效、输入有误,或者对应内容已被移动。你可以返回首页,或回到后台入口继续操作。
|
|
</p>
|
|
<div class="error-actions">
|
|
<a class="action-button primary" href="/">返回首页</a>
|
|
<a class="action-button secondary" href="/sys/">进入后台</a>
|
|
</div>
|
|
</div>
|
|
<div class="error-illustration" aria-hidden="true">
|
|
<div class="illustration-shell">
|
|
<div class="illustration-center">404</div>
|
|
</div>
|
|
</div>
|
|
</section>
|
|
</main>
|
|
</body>
|
|
</html>
|