Как разметить боковую панель и основное тело без использования «абсолютного» или «плавающего»?

Я хоть убей не могу найти способ заставить эту работу работать.

Если у меня есть 3 блока (левая боковая панель, основная часть и нижний колонтитул), как я могу расположить боковую панель и основное тело рядом друг с другом, не устанавливая их положения как «абсолютные» или плавающие? Выполнение любой из этих опций приведет к тому, что div нижнего колонтитула не будет сдвинут ни одним, ни другим.

Как я могу это сделать независимо от того, что находится перед этими элементами (скажем, другой заголовок div или что-то в этом роде)?

На случай, если это поможет, вот иллюстрация двух случаев, которые я пытаюсь разрешить:

Как разметить боковую панель и основное тело без использования «абсолютного» или «плавающего»?

Вот упрощенная версия HTML, которую я сейчас настроил:

<div id = "sidebar"></div>
<div id = "content"></div>
<div id = "footer"></div>
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Введение в CSS
Введение в CSS
CSS является неотъемлемой частью трех основных составляющих front-end веб-разработки.
Как выровнять Div по центру?
Как выровнять Div по центру?
Чтобы выровнять элемент <div>по горизонтали и вертикали с помощью CSS, можно использовать комбинацию свойств и значений CSS. Вот несколько методов,...
Навигация по приложениям React: Исчерпывающее руководство по React Router
Навигация по приложениям React: Исчерпывающее руководство по React Router
React Router стала незаменимой библиотекой для создания одностраничных приложений с навигацией в React. В этой статье блога мы подробно рассмотрим...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
CSS: FlexBox
CSS: FlexBox
Ранее разработчики использовали макеты с помощью Position и Float. После появления flexbox сценарий полностью изменился.
7
0
385
3
Перейти к ответу Данный вопрос помечен как решенный

Ответы 3

Ответ принят как подходящий

Вам нужно указать нижний колонтитул, чтобы очистить поплавок:

#footer{
 clear: both;
}

Это заставляет его находиться под плавающими элементами.

Другие варианты очистки - слева и справа.

Спасибо! Это именно то, что было нужно! Я пробовал использовать clear, но на плавающих div, а не на нижнем колонтитуле, теперь он работает так, как ожидалось.

Wilco 08.11.2008 05:59

Прямо сейчас вы безнадежны, если не хотите ничего плавать или использовать position: absolute.

Остались только альтернативы:

  • используйте display: inline-block для боковой панели и содержимого div (это пока поддерживается не всеми браузерами)
  • дождитесь css расширенный модуль макета или какого-либо другого модуля столбца (возможно, это займет вечность)
  • вернуться к использованию таблиц

Выполнение любого из этих параметров приводит к тому, что div нижнего колонтитула не выталкивается ни одним, ни другим?

Попробуйте этот инструмент

Другие вопросы по теме