HTML CSS шпаргалка Рецепты, статьи, советы, приемы html css

Верстка макета в две, три колонки с помощью CSS

В этой шпаргалке разберем, как сверстать двух и трех колоночный макет без использования таблиц, чисто слои и CSS.

Макет в две колонки

Макет в две колонки, левая фиксированная, а правая растягивается на всю оставшуюся область, представляет из себя следующий код:

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
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Верстка в 2 колонки CSS</title>
<style type="text/css">
	.colLeft{
		width:300px;
		background:#0CF;
		float:left;
		position:relative;
		z-index:1;
	}
	.colRightContainer{
		float:right;
		width:100%;
		margin-left:-300px;
	}
	.colRight{
		margin-left:320px;
		background:#CCC;
	}
</style>
</head>
<body>
     <div class="colLeft">
        Разработчик платформы виртуальных миров – компания «3D-Левая колонка» – объявила о партнерстве,
        позволяющем в будущем всем желающим создавать трехмерные интерактивные изображения Левая колонка.
        Жизнь – это цепь, а Левая колонка в ней звенья, нельзя звену не придавать значенья.
        Я и-нет частенько мониторю в поиске чего-то интересного. Тут недавно, наткнулся на разговоры,
        записанные в дурдоме. Кому интерестно, скачайте послушайте.
        Хотя, честно говоря, как-то не очень приятно было слушать... я бы сказал даже страшновато этих психов слушать:
        через каждое слово «Левая колонка, Левая колонка». А вообще, познавательно и поучительно. Даже очень.
        Как вы, наверное, заметили, у нас здесь не семинар по логистике. Это – просто светские беседы.
        Оставьте людям их Левая колонка, и они вас полюбят. Левая колонка уже перешагнула последнюю грань,
        отделяющую разумных существ от неразумных, но по улицам не носятся религиозные фанатики с криками «Левая колонка,
        Левая колонка!!», а правительство страны не принимает экстренные законы по запрету на общение с Левая колонка.
        Мир, вроде, ничего и не заметил. Судите о человеке ни по тому, как он относится к вам, а по тому,
        как он относится к Левая колонка. Когда 32-летняя Йоани Санчез хочет обновить свой ежедневный блог о
        Левая колонка, она одевается как турист и направляется в отель Гавана, приветствуя сотрудников на немецком языке. 
        Идти на такие хитрости приходится из-за того, что кубинцам пользоваться Левая колонка нельзя – 
        это привилегия иностранцев. Переворачивая Левая колонка, мы теряем ног своих опору.
        Можно бесконечно наблюдать за тем как течет вода, горит огонь, растет трава и т.п.
        К разряду подобных удовольствий можно отнести и Левая колонка.
        А вот «Акнолок яавел» – это Левая колонка наоборот.
    </div>
    <div class="colRightContainer">
    	<div class="colRight">
            Недавно появился новый тип силовых тренажеров – «Правая колонка-райдер». Он имитирует езду на лошади,
            или родео. Это многофункциональный тренажер, который позволяет одновременно развивать силу и выносливость.
            Великие возможности приходят ко всем, но многие даже не знают, что встретились с Правая колонка.
            Правая колонка касается абсолютно всех, потому как личный багаж каждого из нас постоянно увеличивается и
            мы эволюционируем. В общем, расширяем мы с вами географию нашей полемики на славу Правая колонка и все за
            счет нашего отечественного налогоплательщика. Правая колонка не появляется и не исчезает, а переходит от
            одного объекта к другому. Если вы уставились на Правая колонка и ничего не приходит в голову,
            займитесь чем-то другим. Путешествие длиной в одну тысячу миль и начинается, и завершается одним –
            Правая колонка. Вроде как все понятно, товарищ полковник, только вот Правая колонка – это что,
            разновидность наркоты или какая математика заумная? В Греции жил одинокий скульптор.
            Часами он работал в мастерской, создавая объект своей мечты и однажды понял, что создал Правая колонка.
            Скульптор был счастлив до потери пульса. Все жили долго и счастливо. Правая колонка есть. Если верить.
            И хотеть. А вот «Акнолок яаварп» – это Правая колонка наоборот.
        </div>
    </div>
</body>
</html>

Итак, пошли по коду. Сначала задаем левую колонку с шириной в 300 пикселей. Также ей задаем position:relative, чтобы она «всплыла», иначе левая колонка становится не кликабельной и нельзя выделить текст из-за перекрытия ее слоя с классом colRightContainer.

Теперь создаем контейнер для правой колонки с float:right, шириной в 100%, и ключевым свойством margin-left:-300px. Из-за отрицательного маргина, левая колонка «всплывает» и становится под слоем colRightContainer.

Теперь если размещать контент сразу в colRightContainer, то он будет идти на всю ширину окна и будет перекрываться с левой колонкой. Чтобы этого избежать, создаем еще один слой colRight, который нужен только для левого отступа, равный ширине левой колонки + необходимый отступ от левой колонки. В нашем случае, взяли ширину 320 пикселей, т.е. правая колонка будет отстоять от левой на 20 пикселей.

Макет в три колонки

Макет в три колонки делается также как и в две, только внутри colRight делаем также еще две колонки, только уже с правой фиксированной, а левой на всю оставшуюся область.

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
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Верстка в 3 колонки CSS</title>
<style type="text/css">
	.colLeft{
		width:200px;
		background:#0CF;
		float:left;
		position:relative;
		z-index:1;
	}
	.colRightContainer{
		float:right;
		width:100%;
		margin-left:-200px;
	}
	.colRight{
		margin-left:220px;
	}
	.colRight2{
		width:200px;
		background:#0CF;
		float:right;
		position:relative;
		z-index:1;
	}
	.colCenterContainer{
		float:left;
		width:100%;
		margin-right:-200px;
	}
	.colCenter{
		margin-right:220px;
		background:#CCC;
	}
</style>
</head>
<body>
     <div class="colLeft">
        Разработчик платформы виртуальных миров – компания «3D-Левая колонка» – объявила о партнерстве,
        позволяющем в будущем всем желающим создавать трехмерные интерактивные изображения Левая колонка.
        Жизнь – это цепь, а Левая колонка в ней звенья, нельзя звену не придавать значенья.
        Я и-нет частенько мониторю в поиске чего-то интересного. Тут недавно, наткнулся на разговоры,
        записанные в дурдоме. Кому интерестно, скачайте послушайте.
        Хотя, честно говоря, как-то не очень приятно было слушать... я бы сказал даже страшновато этих психов слушать:
        через каждое слово «Левая колонка, Левая колонка». А вообще, познавательно и поучительно. Даже очень.
        Как вы, наверное, заметили, у нас здесь не семинар по логистике. Это – просто светские беседы.
        Оставьте людям их Левая колонка, и они вас полюбят. Левая колонка уже перешагнула последнюю грань,
        отделяющую разумных существ от неразумных, но по улицам не носятся религиозные фанатики с криками «Левая колонка,
        Левая колонка!!», а правительство страны не принимает экстренные законы по запрету на общение с Левая колонка.
        Мир, вроде, ничего и не заметил. Судите о человеке ни по тому, как он относится к вам, а по тому,
        как он относится к Левая колонка. Когда 32-летняя Йоани Санчез хочет обновить свой ежедневный блог о
        Левая колонка, она одевается как турист и направляется в отель Гавана, приветствуя сотрудников на немецком языке. 
        Идти на такие хитрости приходится из-за того, что кубинцам пользоваться Левая колонка нельзя – 
        это привилегия иностранцев. Переворачивая Левая колонка, мы теряем ног своих опору.
        Можно бесконечно наблюдать за тем как течет вода, горит огонь, растет трава и т.п.
        К разряду подобных удовольствий можно отнести и Левая колонка.
        А вот «Акнолок яавел» – это Левая колонка наоборот.
    </div>
    <div class="colRightContainer">
    	<div class="colRight">
            <div class="colRight2">
                Недавно появился новый тип силовых тренажеров – «Правая колонка-райдер». Он имитирует езду на лошади,
                или родео. Это многофункциональный тренажер, который позволяет одновременно развивать силу и выносливость.
                Великие возможности приходят ко всем, но многие даже не знают, что встретились с Правая колонка.
                Правая колонка касается абсолютно всех, потому как личный багаж каждого из нас постоянно увеличивается и
                мы эволюционируем. В общем, расширяем мы с вами географию нашей полемики на славу Правая колонка и все за
                счет нашего отечественного налогоплательщика. Правая колонка не появляется и не исчезает, а переходит от
                одного объекта к другому. Если вы уставились на Правая колонка и ничего не приходит в голову,
                займитесь чем-то другим. Путешествие длиной в одну тысячу миль и начинается, и завершается одним –
                Правая колонка. Вроде как все понятно, товарищ полковник, только вот Правая колонка – это что,
                разновидность наркоты или какая математика заумная? В Греции жил одинокий скульптор.
                Часами он работал в мастерской, создавая объект своей мечты и однажды понял, что создал Правая колонка.
                Скульптор был счастлив до потери пульса. Все жили долго и счастливо. Правая колонка есть. Если верить.
                И хотеть. А вот «Акнолок яаварп» – это Правая колонка наоборот.
            </div>
            <div class="colCenterContainer">
            	<div class="colCenter">
                    Недавно какой-то муниципалитет установил при въезде на территорию щиты со слоганом
                    «Наша истина проста – мир спасет Центральная колонка». Мне эта идея показалась любопытной: ведь, например,
                    в западноевропейских странах автопутешественник всегда знает, на территории какого графства, кантона или провинции
                    он сейчас находится. Мы раздули Центральная колонка до размеров туманности Конская Голова,
                    но не смогли придумать Центральная колонка эквивалентность в другой реальности.
                    – А где же здесь Иа? – спросил Пятачок. – Он грустит – нравоучительно сказала Сова.
                    – Он грустит в другом месте. Где нет Центральная колонка. В Таиланде стриптизерши и стриптизеры играют
                    не только с одеждой, но и с разными предметами, подчас весьма неожиданными: скинув одежду,
                    танцовщица может напоследок вытащить из собственного тела цветочную гирлянду или Центральная колонка.
                    Наш генератор, хоть и не генератор Ван Дер Граафа, но устроен так же просто.
                    Ведь мы рассуждаем о проблемах, которые волнуют все общество.
                    Что, Центральная колонка не волнует наше общество? Центральная колонка или не Центральная колонка?
                    Вот в чем вопрос. Конечно Центральная колонка, скажете вы, и будете абсолютно правы.
                    Центральная колонка – это не порок, а состояние души. Вот мой стиль – Центральная колонка,
                    он отражает то, что происходит вокруг меня, то, что меня интересует. Остроумный разговор,
                    щедро пересыпанный высказываниями о Центральная колонка, всегда приятно послушать.
                    Центральная колонка – ключ к пониманию. А вот «Акнолок яаньлартнец» – это Центральная колонка наоборот.
                </div>
            </div>
        </div>
    </div>
</body>
</html>

Вот так вот, собственно, и можно сделать 2,3 и более колонки на слоях. Минус такого способа, при трех колонках плодятся куча дивов, в которых можно легко запутаться. При двух еще нормально :)

UPD: Еще один способ верстки колонок.

Метки: , ,

Комментарии (9) на “Верстка макета в две, три колонки с помощью CSS”

  • Алла:

    Это все здорово, но если под колонками некоторый фон, он закончится тогда, когда закончится контент в меньшей колонке (

  • Костя:

    Аллочка, для этих целей можно попробовать воспользоваться способом эмулирования колонок одинаковой высоты: http://html-css.info/2009/07/div-float-height/

  • Посмотрел код и скажу своё самое главное возражение:
    обычно контент, который важен и для поисковиков должен находиться как можно выше в документе. А у вас весь контент в самом низу. Т.е. будут вначала индексироваться роботом левая колонка, допустим с меню и всякой рекламной хренью, затем правая колонка с такой же рекламной хренью, а только затем сам контент. Так что такой вариант не стоит применять никогда!
    Если вы желаете узнать как стоит верстать шаблон для SEO смотрите ресурс (не раклама) http://csstemplater.com/
    Конечно, там можно поспорить о некоторых вещах, но генерируются отличные шаблоны для базовой верстки сайта.

  • Костя:

    Да, есть такой момент. Но этот способ замечателен тем, что колонки в коде можно менять местами и они всё-равно будут на своих местах.

  • Спасибо за информацию, тот способ верстки колонками что в следующей статье мне понравился больше, но у меня возник один вопрос… немного не по теме. А где можно сгенирировать такую «рыбку» как у вас в дивах колонок? Очень классная штука :) или это все ручная робота?

  • CLYDe:

    жалко в профиле жж не прокатывает сетка)

  • Oe:

    это единственный способ у которого можно преминять в дальнейшем внутриблочно флоаты и clear.+ подвал прижать к низу тоже получилось.
    если есть ещё способы покажите пожалуйста.

    а то обычно с резиновыми контейнерами получается так что флоатить нельзя

  • Oe:

    http://csstemplater.com/
    тут генерируется шаблон такой , что в футер сссылки не поставишь+ флоатами опять же нельзя пользоваться в центральном диве, всё съезжает после clear

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

Для вставки кода используйте <code> ... </code>.



Самые комментируемые

Облако тегов

Нет тегов найденных по заданным критериям.

Опрос