revert to scroll
This commit is contained in:
parent
b894c69cd8
commit
d2cd964786
349
index.html
349
index.html
@ -18,19 +18,16 @@ body{font:17px/1.6 -apple-system,BlinkMacSystemFont,"Segoe UI",Inter,system-ui,s
|
||||
.hero h1{font-size:56px;font-weight:800;line-height:1.05;margin-bottom:20px;max-width:800px}
|
||||
.hero h1 span{color:var(--cyan)}
|
||||
.hero p{font-size:20px;color:var(--gray-300);max-width:600px;margin-bottom:40px;line-height:1.5}
|
||||
|
||||
/* Tab bar */
|
||||
.tab-bar{display:flex;gap:4px;flex-wrap:wrap;background:var(--gray-800);border-radius:12px;padding:4px;max-width:720px;border:1px solid var(--gray-600)}
|
||||
.tab-btn{flex:1;min-width:120px;padding:12px 20px;border:none;background:transparent;color:var(--gray-300);font-size:14px;font-weight:600;border-radius:8px;cursor:pointer;transition:.2s;text-align:center}
|
||||
.tab-btn:hover{color:var(--white)}
|
||||
.tab-btn.active{background:var(--cyan);color:var(--ink)}
|
||||
.hero .btns{display:flex;gap:16px;flex-wrap:wrap}
|
||||
.btn-primary{display:inline-flex;align-items:center;gap:8px;background:var(--cyan);color:var(--ink);padding:14px 32px;border-radius:8px;font-weight:700;font-size:16px;text-decoration:none;transition:.2s}
|
||||
.btn-primary:hover{background:#33ebff;transform:translateY(-1px)}
|
||||
.btn-secondary{display:inline-flex;align-items:center;gap:8px;background:transparent;color:var(--white);padding:14px 32px;border-radius:8px;font-weight:600;font-size:16px;text-decoration:none;border:1px solid var(--gray-600);transition:.2s}
|
||||
.btn-secondary:hover{border-color:var(--cyan);color:var(--cyan)}
|
||||
.scroll-down{position:absolute;bottom:40px;left:50%;transform:translateX(-50%);color:var(--gray-300);font-size:13px;letter-spacing:1px;text-transform:uppercase;animation:bounce 2s infinite}
|
||||
@keyframes bounce{0%,100%{transform:translateX(-50%) translateY(0)}50%{transform:translateX(-50%) translateY(8px)}}
|
||||
|
||||
/* Tabs content */
|
||||
.tab-content{display:none;padding:80px 0 0}
|
||||
.tab-content.active{display:block}
|
||||
|
||||
/* Sections */
|
||||
.section{padding:100px 0;border-top:1px solid var(--gray-800)}
|
||||
.section-header{text-align:center;margin-bottom:64px}
|
||||
.section-header .num{display:inline-block;font-size:12px;font-weight:700;color:var(--cyan);letter-spacing:2px;text-transform:uppercase;margin-bottom:12px}
|
||||
.section-header h2{font-size:40px;font-weight:800;margin-bottom:16px}
|
||||
@ -72,193 +69,196 @@ body{font:17px/1.6 -apple-system,BlinkMacSystemFont,"Segoe UI",Inter,system-ui,s
|
||||
.container{padding:48px 20px}
|
||||
.hero h1{font-size:36px}
|
||||
.hero p{font-size:17px}
|
||||
.tab-content{padding:48px 0 0}
|
||||
.section{padding:60px 0}
|
||||
.section-header h2{font-size:30px}
|
||||
.two-col{grid-template-columns:1fr;gap:32px}
|
||||
.two-col.reverse{direction:ltr}
|
||||
.cards{grid-template-columns:1fr;gap:16px}
|
||||
.tab-btn{min-width:80px;font-size:12px;padding:10px 12px}
|
||||
.hero .btns{flex-direction:column}
|
||||
.cta h2{font-size:28px}
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<section class="hero">
|
||||
<div class="container hero-content">
|
||||
<div class="badge">NetAcademy v1.0</div>
|
||||
<h1>Обучение сетевым <span>технологиям</span></h1>
|
||||
<p>Программирование, волоконная оптика и сетевое оборудование — от основ до продвинутого уровня. Всё, что нужно для работы в телекоме.</p>
|
||||
<div class="tab-bar" id="tabBar">
|
||||
<button class="tab-btn active" data-tab="coding">💻 Программирование</button>
|
||||
<button class="tab-btn" data-tab="optics">🔬 Оптика</button>
|
||||
<button class="tab-btn" data-tab="equipment">⚙️ Оборудование</button>
|
||||
<button class="tab-btn" data-tab="about">📖 Формат</button>
|
||||
<div class="btns">
|
||||
<a class="btn-primary" href="#coding">Программирование →</a>
|
||||
<a class="btn-primary" href="#optics">Оптика →</a>
|
||||
<a class="btn-primary" href="#equipment">Оборудование →</a>
|
||||
<a class="btn-secondary" href="#about">Формат</a>
|
||||
</div>
|
||||
</div>
|
||||
<div class="scroll-down">Выбери вкладку выше</div>
|
||||
<div class="scroll-down">Листай вниз</div>
|
||||
</section>
|
||||
|
||||
<div class="container">
|
||||
|
||||
<div id="tab-coding" class="tab-content active">
|
||||
<div class="section-header">
|
||||
<div class="num">01</div>
|
||||
<h2>Программирование</h2>
|
||||
<p>Кодирование для сетевых инженеров: автоматизация, скрипты, API</p>
|
||||
</div>
|
||||
<div class="two-col">
|
||||
<div class="text">
|
||||
<h3>Python для сетей</h3>
|
||||
<p>Автоматизация конфигураций, парсинг логов, работа с NETCONF/YANG, Jinja2 шаблоны — всё, что нужно для network automation.</p>
|
||||
<ul>
|
||||
<li>Основы Python: типы данных, функции, модули</li>
|
||||
<li>Pexpect, Paramiko, Netmiko — SSH управление</li>
|
||||
<li>Jinja2 — генерация конфигураций</li>
|
||||
<li>REST API, NETCONF, gRPC — программное управление</li>
|
||||
<li>Ansible для сетевых инженеров</li>
|
||||
</ul>
|
||||
<section id="coding" class="section">
|
||||
<div class="container">
|
||||
<div class="section-header">
|
||||
<div class="num">01</div>
|
||||
<h2>Программирование</h2>
|
||||
<p>Кодирование для сетевых инженеров: автоматизация, скрипты, API</p>
|
||||
</div>
|
||||
<div class="visual">
|
||||
<span class="icon">🐍</span>
|
||||
<div class="code">
|
||||
<span style="color:#8892a4"># Jinja2 template example</span><br>
|
||||
<span style="color:#c678dd">from</span> jinja2 <span style="color:#c678dd">import</span> Environment, FileSystemLoader<br><br>
|
||||
<span style="color:#61afef">config</span> = template.render(<br>
|
||||
interfaces=interfaces,<br>
|
||||
vlan=<span style="color:#98c379">"vlan1793"</span><br>
|
||||
)
|
||||
<div class="two-col">
|
||||
<div class="text">
|
||||
<h3>Python для сетей</h3>
|
||||
<p>Автоматизация конфигураций, парсинг логов, работа с NETCONF/YANG, Jinja2 шаблоны — всё, что нужно для network automation.</p>
|
||||
<ul>
|
||||
<li>Основы Python: типы данных, функции, модули</li>
|
||||
<li>Pexpect, Paramiko, Netmiko — SSH управление</li>
|
||||
<li>Jinja2 — генерация конфигураций</li>
|
||||
<li>REST API, NETCONF, gRPC — программное управление</li>
|
||||
<li>Ansible для сетевых инженеров</li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="visual">
|
||||
<span class="icon">🐍</span>
|
||||
<div class="code">
|
||||
<span style="color:#8892a4"># Jinja2 template example</span><br>
|
||||
<span style="color:#c678dd">from</span> jinja2 <span style="color:#c678dd">import</span> Environment, FileSystemLoader<br><br>
|
||||
<span style="color:#61afef">config</span> = template.render(<br>
|
||||
interfaces=interfaces,<br>
|
||||
vlan=<span style="color:#98c379">"vlan1793"</span><br>
|
||||
)
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<div id="tab-optics" class="tab-content">
|
||||
<div class="section-header">
|
||||
<div class="num">02</div>
|
||||
<h2>Волоконная оптика</h2>
|
||||
<p>Оптические линии, SFP/XFP, DWDM, измерение и монтаж</p>
|
||||
</div>
|
||||
<div class="two-col reverse">
|
||||
<div class="text">
|
||||
<h3>Оптика для связи</h3>
|
||||
<p>Физические принципы, типы волокон, оптические трансиверы, пассивные и активные компоненты ВОЛС.</p>
|
||||
<ul>
|
||||
<li>SMF и MMF: одномод и мультимод — различия</li>
|
||||
<li>SFP, SFP+, XFP, QSFP28 — трансиверы и их параметры</li>
|
||||
<li>Длина волны 1310нм, 1550нм — затухание и дальность</li>
|
||||
<li>DWDM и CWDM — уплотнение каналов</li>
|
||||
<li>OTDR — рефлектометр и измерение линии</li>
|
||||
<li>Сварка и коннекторы (LC, SC, FC)</li>
|
||||
</ul>
|
||||
<section id="optics" class="section">
|
||||
<div class="container">
|
||||
<div class="section-header">
|
||||
<div class="num">02</div>
|
||||
<h2>Волоконная оптика</h2>
|
||||
<p>Оптические линии, SFP/XFP, DWDM, измерение и монтаж</p>
|
||||
</div>
|
||||
<div class="visual">
|
||||
<span class="icon">🔬</span>
|
||||
<div class="label">SMF 9/125 ⇄ SFP+ 10G 1310нм ⇄ 10км</div>
|
||||
<div class="two-col reverse">
|
||||
<div class="text">
|
||||
<h3>Оптика для связи</h3>
|
||||
<p>Физические принципы, типы волокон, оптические трансиверы, пассивные и активные компоненты ВОЛС.</p>
|
||||
<ul>
|
||||
<li>SMF и MMF: одномод и мультимод — различия</li>
|
||||
<li>SFP, SFP+, XFP, QSFP28 — трансиверы и их параметры</li>
|
||||
<li>Длина волны 1310нм, 1550нм — затухание и дальность</li>
|
||||
<li>DWDM и CWDM — уплотнение каналов</li>
|
||||
<li>OTDR — рефлектометр и измерение линии</li>
|
||||
<li>Сварка и коннекторы (LC, SC, FC)</li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="visual">
|
||||
<span class="icon">🔬</span>
|
||||
<div class="label">SMF 9/125 ⇄ SFP+ 10G 1310нм ⇄ 10км</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="cards">
|
||||
<div class="card">
|
||||
<span class="icon">📡</span>
|
||||
<h4>Трансиверы</h4>
|
||||
<p>SFP, SFP+, QSFP — подбор оптики под задачу</p>
|
||||
<div class="tags"><span>SFP</span><span>SFP+</span><span>QSFP</span><span>CWDM</span></div>
|
||||
</div>
|
||||
<div class="card">
|
||||
<span class="icon">📏</span>
|
||||
<h4>Измерения</h4>
|
||||
<p>Затухание, отражения, бюджет мощности</p>
|
||||
<div class="tags"><span>OTDR</span><span>Power Meter</span><span>VFL</span></div>
|
||||
</div>
|
||||
<div class="card">
|
||||
<span class="icon">🔗</span>
|
||||
<h4>Монтаж</h4>
|
||||
<p>Сварка, коннекторы, пигтейлы, кроссовые</p>
|
||||
<div class="tags"><span>LC</span><span>SC</span><span>FC</span><span>APC</span></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="tab-equipment" class="tab-content">
|
||||
<div class="section-header">
|
||||
<div class="num">03</div>
|
||||
<h2>Оборудование</h2>
|
||||
<p>Работа с сетевым железом: настройка, диагностика, эксплуатация</p>
|
||||
</div>
|
||||
<div class="two-col">
|
||||
<div class="text">
|
||||
<h3>MX104, Eltex и другие</h3>
|
||||
<p>Практические навыки работы с сетевым оборудованием ведущих вендоров от провайдерского класса до корпоративного.</p>
|
||||
<ul>
|
||||
<li><strong>Juniper MX104</strong> — маршрутизация, MPLS, BGP, firewall filters</li>
|
||||
<li><strong>Eltex MES</strong> — настройка L2/L3 коммутаторов, VLAN, STP</li>
|
||||
<li><strong>Eltex MG</strong> — медиашлюзы, TDM over IP</li>
|
||||
<li><strong>D-Link, Cisco</strong> — базовые свитчи</li>
|
||||
<li><strong>GPON OLT/ONT</strong> — пассивные оптические сети</li>
|
||||
<li><strong>Диагностика</strong> — tcpdump, iperf, мониторинг</li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="visual">
|
||||
<span class="icon">⚙️</span>
|
||||
<div class="code">
|
||||
<span style="color:#8892a4"># Juniper MX104 — пример</span><br>
|
||||
set interfaces ge-0/0/1 description <span style="color:#98c379">"Client"</span><br>
|
||||
set interfaces ge-0/0/1 unit 0 family inet<br>
|
||||
address <span style="color:#d19a66">10.10.10.1/30</span><br><br>
|
||||
set policy-options policy-statement <span style="color:#e5c07b">EXPORT</span><br>
|
||||
term 10 from protocol bgp<br>
|
||||
term 10 then accept
|
||||
<div class="cards">
|
||||
<div class="card">
|
||||
<span class="icon">📡</span>
|
||||
<h4>Трансиверы</h4>
|
||||
<p>SFP, SFP+, QSFP — подбор оптики под задачу</p>
|
||||
<div class="tags"><span>SFP</span><span>SFP+</span><span>QSFP</span><span>CWDM</span></div>
|
||||
</div>
|
||||
<div class="card">
|
||||
<span class="icon">📏</span>
|
||||
<h4>Измерения</h4>
|
||||
<p>Затухание, отражения, бюджет мощности</p>
|
||||
<div class="tags"><span>OTDR</span><span>Power Meter</span><span>VFL</span></div>
|
||||
</div>
|
||||
<div class="card">
|
||||
<span class="icon">🔗</span>
|
||||
<h4>Монтаж</h4>
|
||||
<p>Сварка, коннекторы, пигтейлы, кроссовые</p>
|
||||
<div class="tags"><span>LC</span><span>SC</span><span>FC</span><span>APC</span></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="cards">
|
||||
<div class="card">
|
||||
<span class="icon">🔄</span>
|
||||
<h4>Juniper MX / SRX</h4>
|
||||
<p>JunOS — маршрутизация, MPLS, firewall, NAT</p>
|
||||
<div class="tags"><span>MX104</span><span>JunOS</span><span>BGP</span><span>MPLS</span></div>
|
||||
</div>
|
||||
<div class="card">
|
||||
<span class="icon">🔀</span>
|
||||
<h4>Eltex</h4>
|
||||
<p>Коммутаторы MES, медиашлюзы MG, TA</p>
|
||||
<div class="tags"><span>MES</span><span>MG</span><span>L2/L3</span><span>VLAN</span></div>
|
||||
</div>
|
||||
<div class="card">
|
||||
<span class="icon">🌐</span>
|
||||
<h4>GPON</h4>
|
||||
<p>OLT, ONT, оптические терминалы</p>
|
||||
<div class="tags"><span>GPON</span><span>OLT</span><span>ONT</span><span>FTTH</span></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<div id="tab-about" class="tab-content">
|
||||
<div class="section-header">
|
||||
<div class="num">04</div>
|
||||
<h2>Формат обучения</h2>
|
||||
<p>Практические навыки для реальной работы в телекоме</p>
|
||||
</div>
|
||||
<div class="cards">
|
||||
<div class="card">
|
||||
<span class="icon">📖</span>
|
||||
<h4>Теория</h4>
|
||||
<p>Структурированные материалы от основ до экспертного уровня. Схемы, таблицы, примеры.</p>
|
||||
<section id="equipment" class="section">
|
||||
<div class="container">
|
||||
<div class="section-header">
|
||||
<div class="num">03</div>
|
||||
<h2>Оборудование</h2>
|
||||
<p>Работа с сетевым железом: настройка, диагностика, эксплуатация</p>
|
||||
</div>
|
||||
<div class="card">
|
||||
<span class="icon">🔧</span>
|
||||
<h4>Практика</h4>
|
||||
<p>Лабораторные работы на реальных конфигах. Настройка, диагностика, отладка.</p>
|
||||
<div class="two-col">
|
||||
<div class="text">
|
||||
<h3>MX104, Eltex и другие</h3>
|
||||
<p>Практические навыки работы с сетевым оборудованием ведущих вендоров от провайдерского класса до корпоративного.</p>
|
||||
<ul>
|
||||
<li><strong>Juniper MX104</strong> — маршрутизация, MPLS, BGP, firewall filters</li>
|
||||
<li><strong>Eltex MES</strong> — настройка L2/L3 коммутаторов, VLAN, STP</li>
|
||||
<li><strong>Eltex MG</strong> — медиашлюзы, TDM over IP</li>
|
||||
<li><strong>D-Link, Cisco</strong> — базовые свитчи</li>
|
||||
<li><strong>GPON OLT/ONT</strong> — пассивные оптические сети</li>
|
||||
<li><strong>Диагностика</strong> — tcpdump, iperf, мониторинг</li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="visual">
|
||||
<span class="icon">⚙️</span>
|
||||
<div class="code">
|
||||
<span style="color:#8892a4"># Juniper MX104 — пример</span><br>
|
||||
set interfaces ge-0/0/1 description <span style="color:#98c379">"Client"</span><br>
|
||||
set interfaces ge-0/0/1 unit 0 family inet<br>
|
||||
address <span style="color:#d19a66">10.10.10.1/30</span><br><br>
|
||||
set policy-options policy-statement <span style="color:#e5c07b">EXPORT</span><br>
|
||||
term 10 from protocol bgp<br>
|
||||
term 10 then accept
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="card">
|
||||
<span class="icon">✅</span>
|
||||
<h4>Тесты</h4>
|
||||
<p>Проверка знаний после каждого модуля. Подготовка к сертификации.</p>
|
||||
<div class="cards">
|
||||
<div class="card">
|
||||
<span class="icon">🔄</span>
|
||||
<h4>Juniper MX / SRX</h4>
|
||||
<p>JunOS — маршрутизация, MPLS, firewall, NAT</p>
|
||||
<div class="tags"><span>MX104</span><span>JunOS</span><span>BGP</span><span>MPLS</span></div>
|
||||
</div>
|
||||
<div class="card">
|
||||
<span class="icon">🔀</span>
|
||||
<h4>Eltex</h4>
|
||||
<p>Коммутаторы MES, медиашлюзы MG, TA</p>
|
||||
<div class="tags"><span>MES</span><span>MG</span><span>L2/L3</span><span>VLAN</span></div>
|
||||
</div>
|
||||
<div class="card">
|
||||
<span class="icon">🌐</span>
|
||||
<h4>GPON</h4>
|
||||
<p>OLT, ONT, оптические терминалы</p>
|
||||
<div class="tags"><span>GPON</span><span>OLT</span><span>ONT</span><span>FTTH</span></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
</div>
|
||||
<section id="about" class="section">
|
||||
<div class="container">
|
||||
<div class="section-header">
|
||||
<div class="num">04</div>
|
||||
<h2>Формат обучения</h2>
|
||||
<p>Практические навыки для реальной работы в телекоме</p>
|
||||
</div>
|
||||
<div class="cards">
|
||||
<div class="card">
|
||||
<span class="icon">📖</span>
|
||||
<h4>Теория</h4>
|
||||
<p>Структурированные материалы от основ до экспертного уровня. Схемы, таблицы, примеры.</p>
|
||||
</div>
|
||||
<div class="card">
|
||||
<span class="icon">🔧</span>
|
||||
<h4>Практика</h4>
|
||||
<p>Лабораторные работы на реальных конфигах. Настройка, диагностика, отладка.</p>
|
||||
</div>
|
||||
<div class="card">
|
||||
<span class="icon">✅</span>
|
||||
<h4>Тесты</h4>
|
||||
<p>Проверка знаний после каждого модуля. Подготовка к сертификации.</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<section class="cta">
|
||||
<div class="container">
|
||||
@ -271,28 +271,5 @@ body{font:17px/1.6 -apple-system,BlinkMacSystemFont,"Segoe UI",Inter,system-ui,s
|
||||
<footer class="footer">
|
||||
NetAcademy © 2026 — Обучение сетевым технологиям
|
||||
</footer>
|
||||
|
||||
<script>
|
||||
(function(){
|
||||
const tabs = document.querySelectorAll('.tab-btn');
|
||||
const contents = document.querySelectorAll('.tab-content');
|
||||
|
||||
function openTab(name) {
|
||||
tabs.forEach(b => b.classList.toggle('active', b.dataset.tab === name));
|
||||
contents.forEach(c => c.classList.toggle('active', c.id === 'tab-' + name));
|
||||
history.replaceState(null, '', '#' + name);
|
||||
}
|
||||
|
||||
tabs.forEach(btn => {
|
||||
btn.addEventListener('click', () => openTab(btn.dataset.tab));
|
||||
});
|
||||
|
||||
const hash = location.hash.replace('#', '');
|
||||
if (hash && document.getElementById('tab-' + hash)) {
|
||||
openTab(hash);
|
||||
}
|
||||
})();
|
||||
</script>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
|
||||
Loading…
Reference in New Issue
Block a user