Очень распространенной задачей при разработке веб-страниц является создание структуры, когда есть два столбца фиксированной ширины по краям и один гибкий столбец в центре, который занимает оставшееся пространство.
Пример такой структуры может быть следующим:
<div id="container">
<div class="column left">Левый столбец</div>
<div class="column center">Центральный столбец</div>
<div class="column right">Правый столбец</div>
</div>
Иногда возникает проблема, что даже при задании столбцам фиксированных размеров, они сжимаются при уменьшении размера окна браузера. Это связано с тем, что в CSS свойство width
задает ширину содержимого элемента, не включая padding, border и margin.
Для решения этой задачи можно использовать модель Flexbox в CSS. Flexbox (Flexible Box) позволяет управлять размерами и позиционированием элементов в контейнере, независимо от их исходных размеров.
В данном случае нужно задать контейнеру свойство display: flex;
, которое делает его flex-контейнером и позволяет использовать другие свойства flexbox для управления дочерними элементами.
#container { display: flex; }
Далее для столбцов с фиксированной шириной задаем нужные размеры:
.column.left { width: 200px; } .column.right { width: 200px; }
А для центрального столбца используем свойство flex-grow: 1;
, которое указывает, что этот столбец должен растягиваться и занимать оставшееся место:
.column.center { flex-grow: 1; }
Таким образом, при изменении размера окна браузера, столбцы с фиксированной шириной останутся неизменными, а центральный столбец будет занимать все оставшееся пространство.
Добавить комментарий