Создание 2-колоночного div-лейаута: левая жидкая, правая фиксированная
Быстрый ответ
Создайте адаптивный двухколоночный макет для ваших проектов с помощью CSS Flexbox. Левая колонка будет занимать все свободное пространство, тогда как правая колонка останется фиксированной ширины — 200 пикселей. Самый простой способ достичь этого выглядит так:
<div style="display: flex;">
  <div style="flex: 1; background: lightblue;">Левая колонка</div>
  <div style="width: 200px; background: orange;">Правая колонка</div>
</div>

Адаптивность при помощи медиазапросов
Вы создали двухколоночный макет, но что, если он не подстраивается под размер экрана? Использование медиазапросов поможет вашему сайту великолепно выглядеть на любых устройствах:
@media screen and (max-width: 600px) {
  .container {
    flex-direction: column;
  }
}
Когда ширина экрана меньше 600 пикселей, макет переключится на одноколоночный.
Альтернативные сценарии работы с CSS
У CSS множество различных трюков. Опробуем некоторые альтернативы:
- CSS Grid: это мощный инструмент для управления компоновкой:
 
.grid-container {
  display: grid;
  grid-template-columns: auto 200px;
}
- Floats: этот старый метод по-прежнему может быть полезным:
 
<div style="float: left; width: calc(100% – 200px);">Левая колонка</div>
<div style="float: right; width: 200px;">Правая колонка</div>
Использование calc() для высшего понимания макета
Добавьте немного магии в ваши стили с помощью функции calc(), которая позволяет вычислять выражения прямо в CSS. Вот как просто сделать ваш CSS любимым:
.left-column {
  width: calc(100% – 200px); /* Ваша резиновая колонка подстроилась как надо */
}
.right-column {
  width: 200px;
}
Управление переполнением содержимого
Управляйте переполнением содержимого, поддерживая в чистоте структуру макета, с помощью overflow: hidden:
.container {
  overflow: hidden; /* Позаботьтесь о рамках контейнера */
}
.left-column {
  overflow: auto; /* Переполнение контролируемо. Просто и эффективно */
}
Применение overflow: hidden для контейнера помогает удерживать блоки колонок на своих местах.
Визуализация
|------------------------------------------------------|-----|
|                      🚂 Чух-чух!                      | 🚃  |
| (Левая колонка адаптирована и тянется, как кошка)     |ПОСТ-
| (Расширяется, подобно йогу на рассвете)              |ОЯННА
|------------------------------------------------------|-----|
Ваш «поезд гибкости» (🚂) символизирует колонку с изменяемой шириной, способную подстраиваться при необходимости. Неподвижный вагон (🚃) представляет фиксированную ширину и не сдвигается при изменениях.
Как укладывать блоки с соблюдением дисциплины
Плавающие элементы и отступы – идеал гармонии и порядка
Используйте clearfix, чтобы плавающие элементы не выходили за пределы контейнера:
.clearfix::after {
  content: "";
  display: table;
  clear: both; /* Как Моисей разделяет моря */
}
Управление отрицательными полями
Смотрите, как ваш макет управляет акробатическими трюками полей и отступов с отрицательным значением поля:
.sidebar {
  margin-left: calc(-200px + 1em); /* Немного магии для корректировки */
}
Таким образом создается необходимое пространство для боковой панели, учитывая отступы и границы.
Полезные материалы
- Полное руководство по Flexbox | CSS-Tricks — Отличный ресурс для тех, кто хочет полностью понять и начать работать с flexbox.
 - Основные концепции Flexbox – CSS: Каскадные таблицы стилей | MDN — Подробный разбор принципов работы flexbox.
 - CSS Flexbox (Гибкий бокс) — Примеры и уроки для быстрого освоения основ работы с Flexbox.
 - Полное руководство по CSS Grid | CSS-Tricks — Всё, что нужно знать о CSS Grid: новый уровень возможностей в верстке.
 - Сеточная компоновка CSS – CSS: Каскадные таблицы стилей | MDN — Полное руководство по мощному инструменту для создания сеток.
 - Адаптивный веб-дизайн: что это такое и как с этим работать — Smashing Magazine — Узнайте, как создавать и использовать адаптивные сетки.
 - Как создать двухколоночный макет — Пошаговое руководство по созданию адаптивного двухколоночного макета.
 


