🔒 Ты не вошёл(вошла) в аккаунт — прогресс, работы и результаты теста не сохраняются. Что недоступно?

✅ Без входа можно

  • читать все 33 занятия, смотреть слайды и шпаргалку;
  • пробовать код в редакторе и песочнице.

⛔ Без входа нельзя

  • сохранять работы — черновик живёт только в этом браузере и пропадёт при очистке истории, в режиме инкогнито или на другом устройстве;
  • отмечать пройденные занятия и видеть свой прогресс;
  • выбрать тему итогового проекта и отмечать чек-лист;
  • отправить итоговый тест и сохранить результат.
Модуль 3. Проектная работа Занятие 24

Многостраничность

Сегодня мы превратим одну страницу в настоящий сайт из трёх страниц с общим меню.

Изучаем: Ссылки между страницами, навигация
Результат: Создаём 3 связанные страницы

🎬 Слайды для урока Листай стрелками ← →, F — весь экран, N — подсказки

👀 Сегодня сделаем вот такое

Показать код примера
<!-- Так выглядит шапка на странице about.html -->
<header class="header">
  <a class="logo" href="index.html">⭐ Мой сайт</a>
  <nav class="menu">
    <a href="index.html">Главная</a>
    <a href="about.html" class="active">Обо мне</a>
    <a href="gallery.html">Галерея</a>
  </nav>
</header>
<main>
  <h1>Обо мне</h1>
  <p>На этой странице — рассказ о себе.</p>
</main>
body { margin: 0; font-family: sans-serif; }
.header {
  display: flex; justify-content: space-between; align-items: center;
  padding: 1rem 2rem; background: #0984e3;
}
.logo { color: white; font-weight: bold; text-decoration: none; }
.menu { display: flex; gap: .5rem; }
.menu a { color: white; text-decoration: none; padding: .4rem .8rem; border-radius: 6px; }
.menu a:hover { background: rgba(255,255,255,.2); }
.menu a.active { background: white; color: #0984e3; }
main { padding: 1rem 2rem; }

💡 Объяснение

Из страницы — в сайт

До сих пор мы делали одну страницу. Настоящий сайт состоит из нескольких страниц, связанных навигацией — общим меню. Технически это просто несколько HTML-файлов в одной папке, которые ссылаются друг на друга.

Структура папки сайта

my-site/
├── index.html      ← главная страница
├── about.html      ← «Обо мне»
├── gallery.html    ← «Галерея»
├── css/
│   └── style.css   ← один файл стилей для всех страниц
└── images/
    ├── logo.png
    └── cat.jpg
  • index.html — главная. Её открывают первой.
  • Остальные страницы — рядом, в корне папки.
  • Стили и картинки — в отдельных папках, чтобы был порядок.

Относительные пути

Путь в href или src отсчитывается от файла, в котором он написан:

  • about.html — файл в той же папке;
  • css/style.css — зайти в папку css и взять файл;
  • ../index.html — выйти на одну папку вверх (две точки = «папка выше»);
  • images/cat.jpg — картинка из папки images.

Важно: путь к картинке внутри CSS-файла (url(...)) считается от CSS-файла! Из css/style.css картинка будет url("../images/cat.jpg").

Общее меню на всех страницах

<header class="header">
  <a class="logo" href="index.html">⭐ Мой сайт</a>
  <nav class="menu">
    <a href="index.html">Главная</a>
    <a href="about.html">Обо мне</a>
    <a href="gallery.html">Галерея</a>
  </nav>
</header>

Шапка, меню и подвал одинаковые на всех страницах — посетитель не должен теряться. Меняется только содержимое main и title.

Логотип-ссылка на главную — традиция почти всех сайтов: люди привыкли нажимать на логотип, чтобы вернуться в начало.

Текущий пункт меню

Посетитель должен видеть, на какой странице находится. Для этого на каждой странице у «своего» пункта меню ставят класс:

<!-- в about.html -->
<a href="about.html" class="active">Обо мне</a>
.menu a.active {
  background: white;
  color: #0984e3;
}

Это единственное, что отличается в меню на разных страницах.

Один CSS на все страницы

В head каждой страницы подключаем один и тот же файл: <link rel="stylesheet" href="css/style.css">. Поменял цвет шапки в CSS — изменился на всём сайте. Это главное преимущество внешнего файла стилей.

Как быстро сделать новую страницу

  1. Сделай и отладь одну страницу полностью (например, index.html).
  2. В VS Code: правый клик по файлу → «Копировать» → «Вставить», переименуй копию в about.html.
  3. Поменяй title, содержимое main и класс active в меню.
  4. Если добавил новую страницу — добавь ссылку на неё в меню всех страниц.

Правила имён

Имена файлов — латиницей, маленькими буквами, без пробелов: my-pets.html. Имя должно подсказывать, что внутри: contacts.html лучше, чем page3.html.

Проверка навигации

Пройди по всем страницам через меню: с каждой страницы на каждую и обратно. Если на какой-то ссылке появилась ошибка «Файл не найден» — проверь имя файла и путь буква в букву.

Частые ошибки

  • Стили подключены только на главной — остальные страницы «голые».
  • Неправильный путь к CSS: style.css вместо css/style.css.
  • Меню обновили только на одной странице.
  • Одинаковый title на всех страницах.
  • Пробелы или русские буквы в именах файлов.

Проверь себя

  1. Что означает ../ в пути?
  2. Что меняется в меню от страницы к странице?
  3. Почему все страницы подключают один CSS-файл?

⌨️ Практика

  1. В VS Code создай index.html, about.html и gallery.html.
  2. Сделай одинаковую шапку с меню на всех трёх страницах.
  3. Подключи один общий файл css/style.css.
  4. На каждой странице выдели текущий пункт меню классом active.
  5. Проверь, что по всем ссылкам можно перейти туда и обратно.

🧪 Редактор

🪞 Рефлексия

  • Что нового я сегодня узнал(а)?
  • Что получилось лучше всего?
  • Где было трудно и что поможет в следующий раз?

🔒 Отметить занятие пройденным можно только после входа. Без аккаунта сайт не запомнит, до какого занятия ты дошёл(дошла). Регистрация · Вход