Как я делаю две колонки
24 Nov, 2005Мне кажется не лишним будет поделиться несколькими, для бывалых кодеров конечно очевидными, методами. Немало об этом написано - но никогда не лишне навести порядок в голове. Разумеется все без таблиц.
Очевидно - если вы умеете делать две колонки - ничего не стоит сделать их тремя - просто разбив одну из них опять на две. И так далее...
Простые две колонки через CSS
Здесь я не буду описывать замороченные техники полурезиновых и на четверть эластичных дизайнов. Просто обычная фиксированная страница. Где размеры всех колонок указаны либо в пикселах, либо в процентах, либо в EMах. И имеем такой вот HTML:- <div id="wrap">
- <div id="main">
- </div>
- <div id="side">
- </div>
- </div>
- #wrap{
- width:700px;
- }
FLOAT для двухколоночного дизайна
Проще всего сделать две колонки с помощью свойства FLOAT, вот так я их как правило и делаю: (ukr.net, pravda.com.ua, cssing)- #main{
- float:left;
- width:500px;
- }
- #side{
- float:right;
- width:200px;
- }
- #main{
- float:left;
- ...
- #side{
- float:left;
- ...
- #wrap{
- overflow:hidden;
- }
- #main{
- float:left;
- ...
- #side{
- margin-left:500px;
- ...
Из недостатков float методов - при переполнении одного из блоков - колонка может сползать(в ИЕ конечно). Но с этим можно и нужно бороться.
абсолютное позиционирование
Как известно "absolutные" блоки позиционируются относительно ближайших родительских relative-блоков. Как по мне, position:absolute - один из самых сильных инструментов в построении страниц. Вот такой ЦСС построит нам две колонки.- #wrap{
- position:relative;
- }
- #main{
- position:absolute;
- left:0;
- width:500px;
- }
- #side{
- position:absolute;
- left:500px;
- width:200px;
- }
Конец
Естественно эти штуки можно применять не только для лэйаута страницы - но и для небольших элементов на ней. В тоже время в роли #wrap может выступать любой блок - даже body.Можно даже в какой-то мере сказать, что они помогают эмулировать таблицы - хотя я уже давно перестал думать таблицами. Но для тех кто еще думает...
В любом случае всегда рад слышать уточнения, советы, Ваши мнения и техники!
39 комментариев к “Как я делаю две колонки”