У меня есть вопрос, который я не нашел в различных моделях компоновки CSS, которые я рассматривал, поэтому я решил опубликовать его здесь.
Я работаю над сайтом, который использует базовый гибкий/фиксированный двухколоночный макет. Контент сайта находится в левом div, а боковая панель — в правом. Боковая панель имеет фиксированную ширину около 200 пикселей, а содержимое расширяется, чтобы заполнить оставшуюся ширину родителя.
Вот как выглядит код:
<div style="width: 90%; margin: 10px auto 10px auto;"> <!-- site container -->
<div style="margin-right: 200px;">Content goes here.</div>
<div style="float: right; width: 200px;">Menus goes here.</div>
<div style="clear: both;"></div> <!-- float-clearer div -->
</div>
Это довольно стандартный подход, и по большей части он работает нормально, но проблема в том, что дизайн сайта требует, чтобы боковая панель появлялась только в определенных случаях. Весь HTML генерируется через PHP, и функция "get-content()" не знает, будет ли вызываться функция "get-sidebar()" или нет.
Когда вызывается боковая панель, я бы хотел, чтобы содержимое расширялось, чтобы заполнить родительский div, оставляя достаточно места для боковой панели. Если боковой панели нет, содержимое должно расширяться, чтобы заполнить всю ширину родителя.
Есть ли способ сделать это с помощью CSS — возможно, используя «авто» для полей содержимого — не полагаясь на PHP/JavaScript?