tmp_template
- index.php
<!DOCTYPE html> <html lang="ru"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Вики Структура</title> <style> * { box-sizing: border-box; } body { font-family: sans-serif; font-size: 13px; line-height: 1.5; color: #202122; background-color: #f8f9fa; margin: 0; padding: 60px 20px; min-width: 320px; } .tabs-container { max-width: 1100px; margin: 0 auto; display: flex; justify-content: flex-start; width: 100%; position: relative; bottom: -1px; z-index: 2; flex-wrap: nowrap; } .tab-item { background-color: #f1f3f5; border: 1px solid #d2d2d2; margin-right: -1px; border-top-left-radius: 6px; border-top-right-radius: 6px; border-bottom-left-radius: 0; border-bottom-right-radius: 0; padding: 6px 14px; font-size: 12px; color: #0645ad; cursor: pointer; text-decoration: none; text-align: left; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; position: relative; min-width: 30px; } .tab-item:hover { background-color: #e8eaed; } .tab-item.tab-item--active { background-color: #ffffff; color: #202122; font-weight: bold; cursor: default; z-index: 4; border-bottom: 1px solid #ffffff; } /* Крайние статичные кнопки */ .tab-item--summary { flex: 0 0 auto; text-align: center; } .tab-item--content { flex: 0 0 auto; text-align: center; margin-right: 0; } /* Вкладка Глава */ .tab-item--chapter { flex: 0 1 auto; } /* Вкладка Страница */ .tab-item--page { flex: 1 1 auto; } /* Элемент для иконки внутри таба (скрыт на десктопе) */ .tab-icon { display: none; } /* Декоративные ушки активной вкладки для десктопа */ .tab-item.tab-item--active::before { content: ""; position: absolute; left: -6px; bottom: -1px; width: 6px; height: 6px; background: radial-gradient(circle at top left, transparent 5px, #d2d2d2 5px, #d2d2d2 6px, transparent 6px), radial-gradient(circle at top left, transparent 5px, #ffffff 5px); z-index: 5; } .tab-item.tab-item--active::after { content: ""; position: absolute; right: -6px; bottom: -1px; width: 6px; height: 6px; background: radial-gradient(circle at top right, transparent 5px, #d2d2d2 5px, #d2d2d2 6px, transparent 6px), radial-gradient(circle at top right, transparent 5px, #ffffff 5px); z-index: 5; } .tab-item--summary.tab-item--active::before { display: none; } .tab-item--content.tab-item--active::after { display: none; } /* ======================================================== МОБИЛЬНАЯ ВЕРСИЯ (Экран меньше 550px) ======================================================== */ @media (max-width: 550px) { /* Прячем исходный текст */ .tab-item--summary .tab-text, .tab-item--content .tab-text { display: none; } /* Включаем отображение иконки */ .tab-item--summary .tab-icon, .tab-item--content .tab-icon { display: inline-block; font-size: 11px; } /* Размеры для кнопок-иконок */ .tab-item--summary, .tab-item--content { padding: 6px 0; width: 34px; text-align: center; } /* --- Логика треугольников для ОГЛАВЛЕНИЯ --- */ /* Неактивная вкладка */ .tab-item--summary .tab-icon::before { content: "◀"; color: #0645ad; } /* Активная вкладка */ .tab-item--summary.tab-item--active .tab-icon::before { content: "▶"; color: #202122; } /* --- Логика треугольников для СОДЕРЖАНИЯ --- */ /* Неактивная вкладка */ .tab-item--content .tab-icon::before { content: "▼"; color: #0645ad; } /* Активная вкладка */ .tab-item--content.tab-item--active .tab-icon::before { content: "▲"; color: #202122; } /* Отключаем десктопные ушки на мобильных, чтобы не накладывались на иконки */ .tab-item.tab-item--active::before, .tab-item.tab-item--active::after { display: none !important; } } /* Главная белая карточка (Тело контента) */ .content-box { background-color: #ffffff; border: 1px solid #d2d2d2; border-top-left-radius: 0; border-top-right-radius: 0; border-bottom-left-radius: 4px; border-bottom-right-radius: 4px; box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15); padding: 24px; max-width: 1100px; margin: 0 auto; position: relative; min-height: 250px; z-index: 1; width: 100%; } .content-panel { display: none; } .content-panel.content-panel--active { display: block; } .page-title { font-size: 24px; font-weight: bold; margin: 0 0 15px 0; color: #202122; } .page-description { margin: 0; color: #202122; } .wiki-list { margin: 10px 0 0 20px; padding: 0; } </style> </head> <body> <div class="tabs-container"> <!-- Добавлен тег span с классом tab-icon для вывода стрелок --> <div class="tab-item tab-item--summary" data-target="summary"> <span class="tab-text">Оглавление</span> <span class="tab-icon"></span> </div> <div class="tab-item tab-item--chapter tab-item--active" data-target="chapter" title="Глава 2.0 Жирный слон">Глава 2.0 Жирный слон</div> <div class="tab-item tab-item--page" data-target="page" title="Страница 2.1. Жизнь жирного слона">Страница 2.1. Жизнь жирного слона</div> <div class="tab-item tab-item--content" data-target="content"> <span class="tab-text">Содержание</span> <span class="tab-icon"></span> </div> </div> <div class="content-box"> <div id="panel-summary" class="content-panel"> <h1 class="page-title">Оглавление книги</h1> <p class="page-description">Полная структура всей книги:</p> <ul class="wiki-list"> <li>Глава 1.0 Начало пути</li> <li><strong>Глава 2.0 Жирный слон</strong></li> <li>Глава 3.0 Заключение</li> </ul> </div> <div id="panel-chapter" class="content-panel content-panel--active"> <h1 class="page-title">Содержание главы 2.0</h1> <p class="page-description">Разделы, входящие в текущую главу:</p> <ul class="wiki-list"> <li><strong>Страница 2.1. Жизнь жирного слона</strong></li> <li>Страница 2.2. Среда обитания слонов</li> </ul> </div> <div id="panel-page" class="content-panel"> <h1 class="page-title">Эта страница ещё не существует</h1> <p class="page-description">Вы перешли по ссылке на страницу, которая ещё не существует.</p> </div> <div id="panel-content" class="content-panel"> <h1 class="page-title">Содержание страницы 2.1</h1> <p class="page-description">Внутреннее оглавление этой конкретной статьи:</p> <ul class="wiki-list"> <li>1. Введение</li> <li>2. Основные характеристики слона</li> <li>3. Итоги</li> </ul> </div> </div> <script> const tabs = document.querySelectorAll('.tab-item'); const panels = document.querySelectorAll('.content-panel'); tabs.forEach(tab => { tab.addEventListener('click', () => { tabs.forEach(t => t.classList.remove('tab-item--active')); tab.classList.add('tab-item--active'); const targetId = tab.getAttribute('data-target'); panels.forEach(panel => panel.classList.remove('content-panel--active')); const targetPanel = document.getElementById('panel-' + targetId); if (targetPanel) { targetPanel.classList.add('content-panel--active'); } }); }); </script> </body> </html>
Только авторизованные участники могут оставлять комментарии.
tmp_template.txt · Последнее изменение: — VladPolskiy
