js+css模拟网络安全教学代码
代码语言:html
所属分类:其他
代码描述:网络安全模拟网页
下面为部分代码预览,完整代码请点击下载或在bfwstudio webide中打开
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>网络安全教学演示平台 | CyberSec Lab</title>
<style>
:root {
--bg-primary: #0d1117;
--bg-secondary: #161b22;
--bg-tertiary: #1c2333;
--bg-card: #1a1f2e;
--border: #30363d;
--border-active: #58a6ff;
--text-primary: #e6edf3;
--text-secondary: #8b949e;
--text-muted: #6e7681;
--accent: #58a6ff;
--accent-glow: rgba(88, 166, 255, 0.3);
--danger: #f85149;
--danger-glow: rgba(248, 81, 73, 0.3);
--warning: #d2991d;
--warning-glow: rgba(210, 153, 29, 0.3);
--success: #3fb950;
--success-glow: rgba(63, 185, 80, 0.3);
--info: #79c0ff;
--purple: #a371f7;
--terminal-bg: #0c1016;
--terminal-text: #c9d1d9;
--font-mono: 'SF Mono', 'Cascadia Code', 'Fira Code', 'JetBrains Mono', 'Consolas', 'Monaco', 'Courier New', monospace;
--font-sans: 'Inter', 'Segoe UI', 'PingFang SC', 'Microsoft YaHei', sans-serif;
--radius: 8px;
--radius-sm: 4px;
--radius-lg: 12px;
--shadow: 0 4px 24px rgba(0, 0, 0, 0.4);
--transition: 0.2s ease;
}
* {
margin: 0;
padding: 0;
box-sizing: border-box;
}
body {
font-family: var(--font-sans);
background: var(--bg-primary);
color: var(--text-primary);
min-height: 100vh;
line-height: 1.6;
-webkit-font-smoothing: antialiased;
}
/* 背景网格动画 */
body::before {
content: '';
position: fixed;
top: 0;
left: 0;
width: 100%;
height: 100%;
pointer-events: none;
z-index: 0;
background:
radial-gradient(ellipse at 20% 20%, rgba(88, 166, 255, 0.04) 0%, transparent 50%),
radial-gradient(ellipse at 80% 60%, rgba(163, 113, 247, 0.03) 0%, transparent 50%),
radial-gradient(ellipse at 50% 80%, rgba(63, 185, 80, 0.03) 0%, transparent 50%);
background-size: 60px 60px;
opacity: 0.6;
}
/* 主容器 */
.app-container {
position: relative;
z-index: 1;
max-width: 1300px;
margin: 0 auto;
padding: 16px 20px 40px;
}
/* 头部 */
.header {
display: flex;
align-items: center;
justify-content: space-between;
padding: 20px 28px;
margin-bottom: 20px;
background: var(--bg-secondary);
border: 1px solid var(--border);
border-radius: var(--radius-lg);
box-shadow: var(--shadow);
flex-wrap: wrap;
gap: 16px;
}
.header-brand {
display: flex;
align-items: center;
gap: 12px;
}
.header-logo {
width: 44px;
height: 44px;
border-radius: var(--radius);
background: linear-gradient(135deg, var(--accent), var(--purple));
display: flex;
align-items: center;
justify-content: center;
font-size: 22px;
font-weight: 700;
color: #fff;
box-shadow: 0 0 20px var(--accent-glow);
animation: logoPulse 3s ease-in-out infinite;
}
@keyframes logoPulse {
0%,
100% {
box-shadow: 0 0 20px var(--accent-glow);
}
50% {
box-shadow: 0 0 35px rgba(163, 113, 247, 0.5);
}
}
.header-title {
font-size: 1.4rem;
font-weight: 700;
letter-spacing: -0.01em;
background: linear-gradient(135deg, var(--text-primary), #bcc5d0);
-webkit-background-clip: text;
-webkit-text-fill-color: transparent;
background-clip: text;
}
.header-subtitle {
font-size: 0.8rem;
color: var(--text-secondary);
font-family: var(--font-mono);
letter-spacing: 0.05em;
}
.header-badge {
padding: 6px 14px;
border-radius: 20px;
font-size: 0.75rem;
font-weight: 600;
background: var(--bg-tertiary);
border: 1px solid var(--border);
color: var(--info);
font-family: var(--font-mono);
letter-spacing: 0.04em;
}
/* 标签导航 */
.tab-nav {
display: flex;
gap: 4px;
margin-bottom: 20px;
background: var(--bg-secondary);
border-radius: var(--radius-lg);
padding: 5px;
border: 1px solid var(--border);
box-shadow: var(--shadow);
overflow-x: auto;
-webkit-overflow-scrolling: touch;
}
.tab-btn {
flex: 1;
min-width: 110px;
padding: 12px 18px;
border: none;
background: transparent;
color: var(--text-secondary);
cursor: pointer;
border-radius: var(--radius);
font-size: 0.9rem;
font-weight: 500;
transition: all var(--transition);
white-space: nowrap;
font-family: var(--font-sans);
position: relative;
display: flex;
align-items: center;
justify-content: center;
gap: 8px;
}
.tab-btn:hover {
color: var(--text-primary);
background: rgba(255, 255, 255, 0.03);
}
.tab-btn.active {
background: var(--bg-tertiary);
color: var(--text-primary);
font-weight: 600;
box-shadow: 0 0 0 1px var(--border-active), 0 0 16px var(--accent-glow);
}
.tab-icon {
font-size: 1.1rem;
}
.tab-indicator {
display: none;
position: absolute;
bottom: -5px;
left: 50%;
transform: translateX(-50%);
width: 24px;
height: 3px;
background: var(--accent);
border-radius: 2px;
}
.tab-btn.active .tab-indicator {
display: block;
}
/* 内容面板 */
.tab-panel {
display: none;
animation: fadeSlideIn 0.35s ease;
}
.tab-panel.active {
display: block;
}
@keyframes fadeSlideIn {
from {
opacity: 0;
transform: translateY(12px);
}
to {
opacity: 1;
transform: translateY(0);
}
}
/* 卡片 */
.card {
background: var(--bg-card);
border: 1px solid var(--border);
border-radius: var(--radius-lg);
padding: 24px;
margin-bottom: 18px;
box-shadow: var(--shadow);
transition: border-color var(--transition);
}
.card:hover {
border-color: #484f58;
}
.card-header {
display: flex;
align-items: center;
gap: 10px;
margin-bottom: 16px;
padding-bottom: 14px;
border-bottom: 1px solid var(--border);
}
.card-header-icon {
width: 36px;
height: 36px;
border-radius: var(--radius-sm);
display: flex;
align-items: center;
justify-content: center;
font-size: 1.1rem;
flex-shrink: 0;
}
.icon-scan {
background: rgba(88, 166, 255, 0.15);
color: var(--accent);
}
.icon-sql {
background: rgba(248, 81, 73, 0.15);
color: var(--danger);
}
.icon-firewall {
background: rgba(210, 153, 29, 0.15);
color: var(--warning);
}
.icon-log {
background: rgba(163, 113, 247, 0.15);
color: var(--purple);
}
.card-title {
font-weight: 600;
font-size: 1rem;
color: var(--text-primary);
}
.card-subtitle {
font-size: 0.8rem;
color: var(--text-muted);
}
/* 终端风格输出 */
.terminal {
background: var(--terminal-bg);
border: 1px solid var(--border);
border-radius: var(--radius);
padding: 16px 20px;
font-family: var(--font-mono);
font-size: 0.82rem;
color: var(--terminal-text);
line-height: 1.7;
overflow-x.........完整代码请登录后点击上方下载按钮下载查看















网友评论0