Разработка сайтов

Как сделать каталог товаров в html css

📅 ⏱ 21:29 ⏳ 2 мин 💬 0

Как сделать каталог товаров в html css: простыми словами, по шагам и с примерами. Разбираем, как это работает на практике, типичные ошибки и лучшие решения. Рас

Коротко: каталог товаров в HTML+CSS — это сетка карточек с фото, названием и ценой, плюс фильтры и постраничная навигация. Вёрстка решается гридом и адаптивом, но для реальной работы нужен сервер (данные, фильтры, корзина) или CMS вроде WooCommerce.

Кому и зачемКаталог — основа магазина. Важно, чтобы карточки были ровными, фото — читаемыми, а фильтры и сортировка помогали быстро найти нужное.

Из чего состоит каталог

Элемент Зачем
Сетка карточек показать товары
Фильтры сузить выбор
Сортировка по цене, новизне
Пагинация не грузить всё сразу
Состояние «ничего не найдено» понятный результат

Вкладки: примеры




CSS
.catalog {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
  gap: 24px;
}

Гибкая сетка: карточки сами переносятся на новую строку, минимальная ширина 240px, колонки тянутся через 1fr.

CODE
<a class="card" href="/product/1">
  <img class="card__img" src="p1.jpg" alt="Настольная лампа">
  <div class="card__body">
    <h3 class="card__title">Настольная лампа</h3>
    <span class="card__price">2 400 ₽</span>
  </div>
</a>
CSS
.card { display: flex; flex-direction: column; text-decoration: none; color: inherit; }
.card__img { aspect-ratio: 1; object-fit: cover; width: 100%; }
.card__price { margin-top: auto; font-weight: 600; }

Карточка целиком — ссылка, картинка квадратная (aspect-ratio), цена прижата к низу (margin-top: auto) — карточки выглядят ровно независимо от длины названия.

CODE
<aside class="filters">
  <label>Цена от <input type="number"></label>
  <label>Цена до <input type="number"></label>
  <button type="button">Показать</button>
</aside>

Фильтры обычно в сайдбаре (десктоп) и в выдвижной панели (мобильные). Без сервера они не влияют на список — нужна логика фильтрации.

CODE
<nav class="pager" aria-label="Страницы">
  <a class="is-active" href="?page=1">1</a>
  <a href="?page=2">2</a>
  <a href="?page=3">3</a>
</nav>

Пагинация с активной страницей. Альтернатива — «Показать ещё» или бесконечная прокрутка (для SEO важно оставить доступные ссылки на страницы).

Статикой каталог не живётНа HTML+CSS можно сверстать вид, но реальный каталог требует данных: база, серверная фильтрация, сортировка, корзина. В WordPress это WooCommerce; в самописных проектах — PHP/JS и API.

Практика: сверстать каталог

  1. Соберите сетку карточек через auto-fill и minmax.
  2. Сделайте карточку целиком ссылкой.
  3. Задайте картинке пропорции и object-fit: cover.
  4. Прижмите цену к низу через margin-top: auto.
  5. Добавьте блок фильтров и сортировки.
  6. Сделайте пагинацию и состояние «ничего не найдено».
  7. Проверьте на мобильном: 1–2 карточки в ряд.

Частые ошибки: причина → решение

Симптом Причина Решение
Карточки «рваные» разная высота flex-колонка + margin-top: auto
Фото искажены нет object-fit object-fit: cover
Фильтры не работают нет серверной логики подключить бэкенд/плагин
Долго грузится все товары сразу пагинация и ленивая загрузка

Проверьте себя

Чек-лист




Как выровнять карточки разной высоты?




Что нужно для работающих фильтров?




Вопросы и ответы

WooCommerce: он даёт каталог, фильтры, корзину и оплату. Стили каталога настраивают в теме или доп. стилях.

Бесконечная прокрутка удобнее на мобильных, но для SEO лучше оставить страницы доступными по ссылкам (скрытая пагинация).

Обычно 12–24. Больше — дольше загрузка; меньше — больше кликов. Начните с 12 и смотрите на поведение.

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

Итоги

  • Каталог — сетка карточек, фильтры, сортировка, пагинация.
  • Карточку делают ссылкой и выравнивают по высоте.
  • Изображения — единые пропорции и object-fit.
  • Для работы нужен сервер или WooCommerce.
Поделиться: ВКонтакте Telegram WhatsApp Одноклассники Viber Мой Мир

Комментарии

Пока комментариев нет — будьте первым, кто поделится мнением.

Оставить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Получите консультацию нашего маркетолога

Изучит ваш проект, подберет подходящие услуги и тарифы

Получите бесплатный аудит

Наш специалист сделает базовый аудит вашего проекта и предложит персональные предложения.

Закажите услугу Каталог морепродуктов

Наш специалист свяжется с вами в ближайшее время и уточнит детали

Закажите адаптивный сайт

Наш специалист поможет составить Вам техническое задание на разработку сайта

Закажите сайт

Наш специалист поможет составить Вам техническое задание на разработку сайта

Закажите сайт лендинг

Наш специалист поможет составить Вам техническое задание на разработку сайта

Закажите сайт каталог

Наш специалист поможет составить Вам техническое задание на разработку сайта

Закажите интернет-магазин

Наш специалист поможет составить Вам техническое задание на разработку сайта

Закажите веб-приложение

Наш специалист поможет составить Вам техническое задание на разработку сайта

Закажите тариф Аутсорс

Стоимость от 150 000 ₽

Закажите тариф Магазин

Стоимость 90 000 ₽

Закажите тариф Классический

Стоимость 60 000 ₽

Закажите тариф Эконом

Стоимость 40 000 ₽

Закажите SEO продвижение

Наш специалист свяжется с вами, проведет анализ, предложит стоимость