<MyRusakov.ru />

Создание игр на Unreal Engine 5

Создание игр на Unreal Engine 5

Данный курс научит Вас созданию игр на Unreal Engine 5. Курс состоит из 12 модулей, в которых Вы с нуля освоите этот движок и сможете создавать самые разные игры.

В курсе Вы получите всю необходимую теоретическую часть, а также увидите массу практических примеров. Дополнительно, почти к каждому уроку идут упражнения для закрепления материала.

Помимо самого курса Вас ждёт ещё 8 бесплатных ценных Бонусов: «Chaos Destruction», «Разработка 2D-игры», «Динамическая смена дня и ночи», «Создание динамической погоды», «Создание искусственного интеллекта для NPC», «Создание игры под мобильные устройства», «Создание прототипа RPG с открытым миром» и и весь курс «Создание игр на Unreal Engine 4» (актуальный и в 5-й версии), включающий в себя ещё десятки часов видеоуроков.

Подробнее
Подписка

Подпишитесь на мой канал на YouTube, где я регулярно публикую новые видео.

YouTube Подписаться

Подписавшись по E-mail, Вы будете получать уведомления о новых статьях.

Подписка Подписаться

Добавляйтесь ко мне в друзья ВКонтакте! Отзывы о сайте и обо мне оставляйте в моей группе.

Мой аккаунт Мой аккаунт Моя группа
Опрос

Какая тема Вас интересует больше?

CSS Flexbox для начинающих: практическое руководство с примерами

CSS Flexbox для начинающих: практическое руководство с примерами

CSS Flexbox для начинающих — это практическое руководство, которое поможет уверенно использовать гибкие контейнеры для выравнивания, адаптивных рядов и базовой компоновки. Ниже — понятные объяснения, рабочие сниппеты и советы, которые применимы в ежедневной вёрстке.

Что такое Flexbox и когда его выбирать

Flexbox — это однорядная (или многострочная с переносом) система компоновки, оптимальная для одномерных задач: выравнивание по оси, распределение свободного места, равная высота карточек, навигационные панели. Для сложных двумерных сеток (строки и столбцы одновременно) лучше подходит CSS Grid, но в 80% интерфейсных задач вам хватит Flexbox.

Быстрый старт: свойства контейнера

Чтобы включить режим, объявите родителю display: flex. Дальше управляем направлением, переносом и отступами между элементами.

.container {
  display: flex;              /* включаем Flexbox */
  flex-direction: row;        /* row | row-reverse | column | column-reverse */
  flex-wrap: wrap;            /* nowrap | wrap | wrap-reverse */
  gap: 16px;                  /* безопасная замена "margin" между элементами */
}

Главная ось (main axis) задаётся flex-direction: при row — горизонталь, при column — вертикаль. Перенос по строкам включается через flex-wrap. gap аккуратно расставляет расстояния без отрицательных маргинов и псевдоэлементов.

Выравнивание по осям

  • justify-content — выравнивание по главной оси (start, center, end, space-between, space-around, space-evenly).
  • align-items — выравнивание по поперечной оси для всех элементов (stretch по умолчанию).
  • align-content — выравнивание строк при flex-wrap: wrap.
.center-box {
  display: flex;
  justify-content: center; /* по главной оси */
  align-items: center;     /* по поперечной оси */
  min-height: 300px;
  background: #f6f7fb;
}

Для краткости можно использовать flex-flow:

.row-wrap { flex-flow: row wrap; }
.column-nowrap { flex-flow: column nowrap; }

Свойства элементов: grow, shrink, basis и шорткат flex

Поведение дочерних блоков управляется тремя параметрами:

  • flex-grow — как элемент расширяется, когда есть свободное место (0 = не растёт, 1 = растёт).
  • flex-shrink — как элемент сжимается, когда места не хватает (1 = может сжиматься).
  • flex-basis — базовый размер (стартовая ширина/высота по главной оси).

Шорткат: flex: grow shrink basis.

/* Равные колонки */
.item { flex: 1 1 0; } /* все делят свободное место поровну */

/* Фиксированная сайдбар + резиновый контент */
.sidebar { flex: 0 0 280px; }
.content { flex: 1 1 auto; }

Важно: предпочитайте flex-basis вместо width для контроля размера по главной оси — это предсказуемее в гибких рядах.

Готовые паттерны на Flexbox

1) Центровка по вертикали и горизонтали

.centered {
  display: flex;
  justify-content: center;
  align-items: center;
  min-height: 60vh;
}

2) Шапка сайта с кнопкой справа

.header { display: flex; align-items: center; gap: 12px; }
.header__spacer { margin-left: auto; }

<header class="header">
  <a class="logo">Brand</a>
  <nav>...</nav>
  <div class="header__spacer"></div>
  <button>Войти</button>
</header>

3) Ряд карточек, который красиво переносится

.cards {
  display: flex;
  flex-wrap: wrap;
  gap: 20px;
}
.card { flex: 1 1 280px; } /* цель: 3-4 в ряд, на мобилках по одной */

4) Прилипший футер без позиционирования

html, body { height: 100%; }
body {
  min-height: 100svh;        /* учитывает динамические панели на мобильных */
  display: flex;
  flex-direction: column;
}
main { flex: 1; }
footer { padding: 16px; background: #f1f3f5; }

Практический пример: лейаут «сайдбар + контент + виджет»

.layout { display: flex; gap: 24px; }
.sidebar { flex: 0 0 260px; }
.content { flex: 1 1 auto; min-width: 0; }   /* min-width:0 предотвращает вылезание текста */
.widget  { flex: 0 1 320px; }

@media (max-width: 1024px) {
  .layout { flex-wrap: wrap; }
  .widget { flex-basis: 100%; }
}

<div class="layout">
  <aside class="sidebar">...</aside>
  <main class="content">Длинный текст и таблицы</main>
  <section class="widget">Блок с промо</section>
</div>

Частые ошибки и как их избегать

  • Текст «выпирает» из карточки. По умолчанию у flex-элементов min-width: auto, из-за чего длинный контент не сжимается. Решение: поставить min-width: 0 у проблемного элемента.
  • Ширина через width вместо flex-basis. В гибких рядах используйте flex-basis — он корректнее учитывает алгоритм раскладки.
  • Неожиданное растягивание по высоте. Значение align-items: stretch по умолчанию. Если нужно по контенту — ставьте align-items: flex-start или center на контейнере.
  • Перемешивание визуального и DOM-порядка. Свойство order меняет визуальный порядок, но не порядок обхода клавиатурой и чтения скринридерами. Используйте аккуратно ради доступности.
  • Отступы между элементами через margin. Предпочитайте gap: короче, безопаснее, меньше коллизий. Фоллбэк для очень старых браузеров — маргины на элементах и «-margins» на контейнере.
  • Изображения «рвут» карточку. Не забывайте img { max-width: 100%; height: auto; } внутри гибких элементов.

Отладка Flexbox

  • Включите Flex overlay в DevTools (Chrome/Firefox) — увидите оси, переносы и промежутки.
  • Добавьте временно контуры: .debug * { outline: 1px dashed #cbd5e1; } для визуального контроля раскладки.
  • Проверяйте с длинными текстами и узкими экранами — критично для реальной адаптивности.

Мини-шпаргалка по значениям

/* Контейнер */
.container { display:flex; flex-flow: row wrap; gap: 1rem; }
.container.center { justify-content:center; align-items:center; }
.container.between { justify-content: space-between; }

/* Элементы */
.flex-1 { flex: 1 1 0; }
.flex-auto { flex: 1 1 auto; }
.flex-none { flex: 0 0 auto; }
.basis-300 { flex-basis: 300px; }
.shrink-0 { flex-shrink: 0; }

Что дальше изучать

Освоив базу Flexbox, добавляйте CSS Grid для сложных сеток, современную типографику и методологии (BEM). Лучший способ закрепить знания — сверстать реальный макет с нуля. Рекомендую практический курс: Прокачать Flexbox и вёрстку на практике — курс «Вёрстка сайта с нуля 2.0».

Итог

CSS Flexbox для начинающих — это быстрый путь к предсказуемому выравниванию и адаптивным интерфейсам. Используйте flex-basis вместо width, помните про min-width: 0, применяйте gap и проверяйте переносы — и ваши макеты будут собираться чисто и без «костылей».

Копирование материалов разрешается только с указанием автора (Михаил Русаков) и индексируемой прямой ссылкой на сайт (https://myrusakov.ru)!

Добавляйтесь ко мне в друзья ВКонтакте: https://vk.com/myrusakov.
Если Вы хотите дать оценку мне и моей работе, то напишите её в моей группе: https://vk.com/rusakovmy.

Если Вы не хотите пропустить новые материалы на сайте,
то Вы можете подписаться на обновления: Подписаться на обновления

Если у Вас остались какие-либо вопросы, либо у Вас есть желание высказаться по поводу этой статьи, то Вы можете оставить свой комментарий внизу страницы.

Порекомендуйте эту статью друзьям:

Если Вам понравился сайт, то разместите ссылку на него (у себя на сайте, на форуме, в контакте):

  1. Кнопка:

    Она выглядит вот так: Как создать свой сайт

  2. Текстовая ссылка:

    Она выглядит вот так: Как создать свой сайт

  3. BB-код ссылки для форумов (например, можете поставить её в подписи):

Комментарии (0):

Для добавления комментариев надо войти в систему.
Если Вы ещё не зарегистрированы на сайте, то сначала зарегистрируйтесь.