Адаптивний інтернет-магазин (Media Queries + Flex)

 Мета роботи

  • закріпити структуру HTML-сторінки;
  • повторити роботу з Flexbox або Grid;
  • навчитися створювати адаптивний макет за допомогою @media;
  • навчитися змінювати кількість колонок залежно від ширини екрана;
  • правильно використовувати box-sizing: border-box;.


Вихідні дані

Дано:

  • готовий HTML-код сторінки
  • скріни макета для:

  1. великого екрана (десктоп),
  2. планшета,
  3. смартфона.

Завдання — написати файл style.css, щоб сторінка виглядала як на зразках.


Структура сторінки

HTML вже містить:

  • <nav class="navbar"> — шапка сайту
  • <main class="products-grid"> — блок з товарами
  • .product-card — картка товару
  • <footer class="footer"> — підвал

Редагувати HTML не потрібно (якщо інше не зазначено в ускладненні).


Вимоги до реалізації

1. Загальні стилі

Обов’язково:

  • Скинути стандартні відступи браузера.
  • Додати:

* {
box-sizing: border-box;
}

  • Задати базовий шрифт для сторінки.
  • Зробити світлий фон для основної частини та темний для шапки і підвалу.
  • Обмежити ширину контенту (наприклад, max-width).


2. Шапка сайту (navbar)

На великому екрані:

  • логотип зліва;
  • меню справа;
  • елементи меню в один ряд;
  • вирівнювання через display: flex.


3. Картки товарів

Кожна картка повинна мати:

  • світлий фон;
  • внутрішні відступи;
  • округлення кутів;
  • тінь;
  • кнопку з зеленим фоном;
  • кнопку на всю ширину картки.

Кнопка:

  • без рамки;
  • білий текст;
  • змінює відтінок при наведенні.


Адаптивність (головна частина завдання)

Десктоп (від 1024px)

  • 4 картки в ряд.
  • Вирівнювання через  Flexbox.
  • Рівномірні відступи між картками.


Планшет (до 1024px)

  • 2 картки в ряд.
  • Зменшені зовнішні відступи.


Телефон (до 600px)

  • 1 картка в ряд.
  • Меню переходить під логотип.
  • Меню по центру.
  • Картки займають всю ширину контейнера.


Обов’язкове використання

  • @media
  • display: flex 
  • gap
  • max-width
  • box-sizing: border-box




Вихідний код HTML 

<html lang="uk">

<head>

    <meta charset="UTF-8">

    <meta name="viewport" content="width=device-width, initial-scale=1.0">

    <title>Мій адаптивний магазин</title>

    <link rel="stylesheet" href="style.css">

</head>

<body>

    <nav class="navbar">

        <div class="logo">Гаджет-Шоп 📱</div>

        <ul class="nav-links">

            <li><a href="#">Каталог</a></li>

            <li><a href="#">Кошик</a></li>

            <li><a href="#">Контакти</a></li>

        </ul>

    </nav>

    <main class="products-grid">

        <div class="product-card">

            <h3>Смартфон</h3>

            <p>Ціна: 15 000 грн</p>

            <button>Купити</button>

        </div>

        <div class="product-card">

            <h3>Ноутбук</h3>

            <p>Ціна: 35 000 грн</p>

            <button>Купити</button>

        </div>

        <div class="product-card">

            <h3>Навушники</h3>

            <p>Ціна: 4 000 грн</p>

            <button>Купити</button>

        </div>

        <div class="product-card">

            <h3>Годинник</h3>

            <p>Ціна: 8 000 грн</p>

            <button>Купити</button>

        </div>

    </main>

    <footer class="footer">

        <p>&copy; 2026 Всі права захищені</p>

    </footer>

</body>

</html>

Нові Старіші