Одна из замечательных особенностей веб-разработки заключается в том, что чаще всего, когда вы видите сайт и думаете «как они это сделали», очень легко посмотреть на код и выяснить его, а также проверить его - Такие инструменты, как Firebug для Firefox, Инструменты разработчика в IE 8 (F12) и Chrome будут отображать красиво отформатированный исходный код и CSS и позволят вам изменить его на месте.
В случае SO основная часть сайта содержится в div с классом «container», правила стиля для «container»:
.container {
margin: 0 auto;
text-align: left;
width: 950px;
}
Ключевым моментом, на который мы здесь обращаем внимание, является то, что этот класс имеет фиксированную ширину - 950 пикселей, а поля установлены (расширенно):
margin-top: 0px;
margin-right: auto;
margin-bottom: 0px;
margin-left: auto;
Установка левого и правого полей на «auto» приводит к центрированию div по краям его контейнера и позволяет им расширяться до необходимой ширины после того, как контейнер занял требуемые 950px.
Внутри контейнера div у вас есть div с идентификатором «content» (без стилевых правил), а затем два div: «mainbar» и «sidebar» со стилями:
#mainbar {
float: left;
margin-bottom: 40px;
width: 715px;
}
#sidebar {
float: right;
width: 220px; /* this is also set in the "style" attribute *
}
Эти левый и правый плавающие элементы - это то, что позиционирует бары в нужных местах.
Другое удобное правило CSS:
clear
это может быть установлено на "и то, и другое", "левое" или "правое", и в основном сбрасывает поплавки на контейнерах.
Однако, похоже, что вы после того, что часто называют « Святой Грааль CSS » (Рик указывает, что в этом есть ошибка с IE7, см. здесь для исправления ) по уважительной причине: три столбца, по крайней мере, один из них гибкий.
Другие примеры полностью гибких макетов: