Верстка 3 колоночного, резинового макета.+прижимаем футер

Категории:HTML-верстка, Для начинающих
Теги: , ,

верстка сайта в 3 колонкоНу вот, наконец-то я вернулся к теме моего блога HTML-верстке. Что-то понесло меня на блоггинг =). Хотя вышло даже не плохо…Получил первый раз для своего блога больше 130 посетителей за сутки. Потом меня надоумило написать про болезни людей, которые за компьютером много сидят… Но вот, наконец-то, я образумился и вернулся к родной тематике. Эта статья повествует о следующем:

Как сделать 3 колонки с помощью CSS

Как сделать резиновый 3-х колоночный макет

Как прижать footer к низу окна браузера, даже если на странице очень мало контента.

Знаю, тема уже раскрыта =) но, повторение – мать учение!Начнем со структуры HTML:

1
2
3
4
5
6
<div id="container">
<div id="left">Левый сайдбар</div>
<div id="right">Правый сайдбар</div>
<div id="center">Контент</div>
</div>
<div id="footer">футтер</div>

Далее перейдем к css. Здесь не все так просто как в html:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
html, body{
margin:0px; padding:0px; height:100%; width:100%;
}
#container{
position:relative;
margin:auto 0 -50px; \*ставим блок по середине и отсчитываем -50px высоты футтера*\
height:100%;
min-height:100%;
height:auto !important;
}
#left{
position:relative;
width:200px;
height:100%;
min-height:100%;
height:auto !important;
background-color:#999999;
float:left;
}
#right{
position:relative;
width:200px;
height:100%;
min-height:100%;
height:auto !important;
background-color:#999999;
float:right;
}
#center{
background-color:#CCC;
height:100%;
min-height:100%;
height:auto !important;
width:auto;
}
#footer{
position:relative;
clear:both;\*очистка от float с обеих сторон*\
width:100%;
height:50px;
background-color:#9999CC;
border-top:1px solid #333333;
}

Вот и вся магия =). Этот пример очень хорош в использовании. Теперь Вас не затруднит создать 3 колонки в Вашей верстке и при это сделать кроссбраузерный резиновый макет с прибитым к низу окна браузера футтером. Пример можно посмотреть здесь!

Если Вам понравилась статья и Вы хотите следить за обновлениями в блоге, то подписывайтесь через RSS, становитесь моим фолоувером в twitter. Так же, возможно, Вы хотите разместить постовые или любые другие виды рекламы. В таком случае пишите мне на ICQ:451240340

Если Вы хотите  чтобы Ваше строительство проходило на должном уровне, обратитесь в МГБТЭ! Они проведут надзор за строительством Вашего проекта наилучше.

Вы знаете где будет проходить Евро-2012 в Донецке? Все новости об этом и многом другом на сатей города Донецк по адресу – http://donetsk.prostogorod.com/. Узнай свой город лучше вместе с сайтом!

Похожие статьи:


Комментарии:

20 комментариев к теме: “Верстка 3 колоночного, резинового макета.+прижимаем футер”


  1. все просто и понятно)
    когда будет верстка макета из конкурса?


  2. А как себя ведут блоки при большом количестве текста и большой разнице в высоте блока. Допустим высота #left стала занимать более одного экрана. При этом footer идет вниз, или остается, накрывая часть sidebar-а?


  3. >когда будет верстка макета из конкурса?
    Да вот никак не собирусь с мыслами =)) Дизайн уже есть, а вот текст урока, что бы не запинаться, я все никак не могу надумать, все времени нету…


  4. >А как себя ведут блоки при большом количестве текста и большой разнице в высоте блока. Допустим высота #left стала занимать более одного экрана. При этом footer идет вниз, или остается, накрывая часть sidebar-а?

    Футер будет идти вниз на высоту сайдбара.
    Почему?
    Отвечаю: контентная часть и сайдбар заключены в блок container, и высота этого блока генерируется исходя из САМОГО длинного блока, а остальные блоки(к примеру правый сайдбар и контент) просто тянутся до футера. Это очень отличное решение. убивает сразу не одноги не двух зайцев =)


  5. Спасибо за статью. Только у меня не совсем получилось. Резина получилась нормально. Вот только колонки располагаются одна под другой по мере порядка в html.

    Вот код центрально части:
    #content {
    position:relative;
    height:100%;
    min-height:100%;
    height:auto !important;
    float: left;
    margin: 0px 400px 0px 400px;
    }
    width: 100%; пришлось убрать, так как для меня не понятно почему, слеваа область контента сместилась на 400 пикселей, а справа все равно прилипла к правому краю экрана.

    Вот код правого сайдбара:
    #sidebar {
    width: 220px;
    padding: 0 10px 0 40px;
    float: right;
    margin-right: 80px;
    position:relative;
    height:100%;
    min-height:100%;
    height:auto !important;
    }

    Вот код левого сайдбара:
    #left {
    float: left;
    width: 230px;
    margin-left: 120px;
    padding-right: 30px;
    position:relative;
    height:100%;
    min-height:100%;
    height:auto !important;
    }

    РАсположение блоков:
    Контент
    Левый сайдбар,
    Правый сайдбар.

    Блоки пробовал располагать в разной последовательности. Не помогает. Все равно блоки располагаются один под другим, а не паралельно.

    Подскажите, в чем моя ошибка?


  6. Для начала уберите идентификатор у блока content.
    Затем переставьте блок content после блока sidebar, т.е. в самый конец.


  7. Спасибо. Все получилось. С блока content убрал флоаты, и все стало на место.


  8. [...] своем блоге я уже писал про верстку трех колоночного сайта, но здесь немного другой принцып. Эти колонки больше [...]


  9. Это конечно все здорово, вот только IE6 шлет такое нафиг, так что незачет.


  10. Может что-то неправильно делаете?


  11. Куда надо поцеловать, чтобы Вас отблагодарить?


  12. Да не надо никуда) На здоровье =)))


  13. Проверь свой пример – у тебя в html а в css #center, поэтому и РАБОТАЕТ!!!! В #center стоит width: 100%; из-за этого и не работает у многих людей – блок съезжает вниз. То есть для блока #center не нужны стили совсем. Из – за этой ошибки 2 часа потерял!!!


  14. див съелся и з пердидущего поста – должно быть : у тебя [div id=”cener”>в html а в css #center


  15. Знал это давно. Забыл исправить. Спасибо, что напомнил. Уже исправлено. Там для блока просто не надо ставить какой-либо параметр width. Или же поставить просто значение auto и убрать позиционирование relative.
    PS: И не надо нервничать. Надо было внимательно свой код писать. Если разбираешься – понял бы сразу!


  16. IE 7 не раотает


  17. Спасибо.
    Но нельзя ли сделать так, чтобы содержимое боковых колонок (например, левой) выравнивалось по низу содержимого центральной и наоборот? Т.е., чтобы была возможность привязать боковые элементы оформления не к футеру, а к низу центральной части.


  18. Таких статей в инете 95% и все одно и тоже, нормальных уроков толком нет, как и эта статья, вы браузер уменьшите и увеличьте и посмотрите как блоки друг на друга полезут, короче гавно а не урок


  19. Возможно, ты просто что-то не так делал. У меня все работает нормально, а если ты говноисполнитель, то здесь уже ничего не поделаешь!


  20. Первый раз ощетинился написать сайт слоями,
    очень здорово помог этот пост разобраться с высотой колонок. Огромное спасибо. Ссылочку обязательно размещу, тока руки дойдут.

Оставить комментарий

*