Можно ли использовать CSS свойство flexbox для создания двух колонок слева и одной колонки справа?

Как сделать трехколоночную адаптивную верстку сайта на HTML, CSS и Flex, чтобы правая колонка переходила под левую при уменьшении ширины экрана, а центральная колонка находилась справа? Как добиться того, чтобы при дальнейшем уменьшении ширины экрана центральная колонка заполнила всю ширину страницы, а левая и правая появлялись ниже? Важно, чтобы центральная колонка была расположена вверху в HTML-коде и все это без использования JavaScript.
  • 24 октября 2023 г. 16:39
Ответы на вопрос 1
Да, можно использовать CSS свойство flexbox для создания двух колонок слева и одной колонки справа.

Вот пример трехколоночной адаптивной верстки с использованием flexbox:

HTML код:
```html
<div class="container">
  <div class="left-column">Левая колонка</div>
  <div class="center-column">Центральная колонка</div>
  <div class="right-column">Правая колонка</div>
</div>
```

CSS код:
```css
.container {
  display: flex;
  flex-wrap: wrap;
}

.left-column {
  flex-basis: 200px;
  order: 1;
}

.center-column {
  flex-basis: calc(100% - 400px);
  order: 3;
}

.right-column {
  flex-basis: 200px;
  order: 2;
}

@media (max-width: 600px) {
  .center-column {
    flex-basis: 100%;
    order: 2;
  }

  .right-column {
    order: 3;
    margin-top: 20px;
  }
}
```

В данном примере, мы используем свойства `flex-basis` для задания ширины колонок и `order` для их порядка. С помощью медиа-запроса `@media (max-width: 600px)` мы меняем порядок колонок и задаем им правила для адаптивности на устройствах с шириной экрана меньше 600px.

Таким образом, при уменьшении ширины экрана до 600px, правая колонка переходит под левую, а центральная колонка находится справа. При дальнейшем уменьшении ширины экрана, центральная колонка заполняет всю ширину страницы, а левая и правая колонки появляются ниже.

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