Войти на сайт
Регистрация
Обратная связьНаш магазинБлог администрации
Российская школа CSS - Справочник CSS, уроки CSS, jQuery
Оптимизатор CSS Конструктор CSS
Российская школа CSS » Уроки CSS вёрстки » Дотягиваем блоки до подвала сайта
49
Дотягиваем блоки до подвала сайта

Небольшой урок за основу которого я взял урок от GZ Design Урок CSS вёрстки 3. Простой шаблон сайта. Я хочу показать как добиться той самой табличной тянучисти к которой все так привыкли. Если Вы присмотритесь к демо версии, то обнаружите небольшой недостаток самой блочной верстки, казалось бы не возможно растянуть левый и правый блок по всей высоте от шапки сайта до подвала, как это можно сделать таблицами. Однако выход всегда есть.

css

/*
=============================================================
© 2008 Российская школа CSS (Russian CSS School)
http://www.css-school.ru
Урок CSS вёрстки №3 Простой шаблон сайта
style.css - Набор стилей для урока
=============================================================
*/

/* Задание стилей всего шаблона */
body {
font: 80% Arial;
text-align:center;
}

/* Задание стилей новой строки */
p {margin:0 10px 10px;}

/* Задание стилей ссылок */
a {
padding:5px;
text-decoration:none;
color:#0053a1;
}

/* Задание стилей ссылок при наведении */
a:hover {
text-decoration:underline;
color:#067a00;
}

/* Задание стилей блока заголовка */
div#header {
background-color:#005387;
color:#fff;
height:80px;
line-height:80px;
padding-left:20px;
}

/* Задание стилей всего шаблона */
div#all {
text-align:left;
width:750px;
margin:0 auto;
}

/* Задание стилей навигации */
div#navigation {
background:#e3f4ff;
float:left;
width:150px;
margin-left:-750px;
}

/* Задание стилей списка */
div#navigation ul {
margin:15px 0;
padding:0;
list-style-type:none;
}

/* Задание стилей элемента списка */
div#navigation li{margin-bottom:5px;}

/* Задание стилей правого столбца */
div#extra {
background:#c1e7ff;
float:left;
width:150px;
margin-left:-150px;

}

/* Задание стилей "подвала" */
div#footer {
background-color:#013657;
color:#fff;
clear:left;
height:25px;
}

div#footer p {
margin:0;
padding:5px 10px;
}

/* Задание стилей всего шаблона */
div#templ {
float:left;
width:100%;
}

/* Задание стилей центрального столбца */
div#content {margin: 0 150px;}


html



Российская школа CSS. Учебный шаблон 1



<div id="all">
<div id="header"><h1>Учебный шаблон №1</h1></div>
  <div id="templ">
    <div id="content">
      <p><strong>Основное содержание</strong></p>
<p>Какой-то текст</p>
    </div>
  </div>
  <div id="navigation">

    <p><strong>Навигация</strong></p>
    <ul>
      <li>&#8594; [url=http://www.css-school.ru/]</li>
      <li>&#8594; <a href="#">Ссылка 1[/url]</li>
      <li>&#8594; [url=#">Ссылка 2</a></li>
      <li>&#8594; <a href=]Ссылка 3[/url]</li>
      <li>&#8594; [url=#">Ссылка 4</a></li>
      <li>&#8594; <a href=]Ссылка 5[/url]</li>
    </ul>
  </div>
  <div id="extra">
    <p><strong>Дополнительно</strong></p>
    <p>Различные полезные блоки, реклама и т.д.</p>
  </div>
  <div id="footer">
    <p>© Copyright</p>
  </div>
</div>




Для начала выкинем подвал сайта из общего блока "all" в противном случае могут всплыть баги в FF

CSS

div#footer {
background-color: #013657;
color: #fff;
clear: left;
height: 25px;
text-align: left; /* добавлено от блока "all" */
width: 750px; /* добавлено от блока "all" */
margin: 0 auto; /* добавлено от блока "all" */
}


HTML

  </div>
</div>
<div id="footer">
  <p>© Copyright</p>
</div>




Далее добавляем для двух блоков navigation и extra следующие свойства: margin-bottom: -1000em; - оттягивает блок вниз padding-bottom: 1000em; - не позволяет блоку провалиться при заполнением контента.

CSS

div#navigation {
background:#e3f4ff;
float:left;
width:150px;
margin-left:-750px;
margin-bottom: -1000em;
padding-bottom: 1000em;
}
div#extra {
background:#c1e7ff;
float:left;
width:150px;
margin-left:-150px;
margin-bottom: -1000em;
padding-bottom: 1000em;
}


У нас получается растянуть блоки на произвольную цифру 1000em можете указать и 5000em и 1000000px - это уже личное. Но у нас возникает проблема, что окно браузера растянулось. Для этого просто нашему блоку "all" пишем свойство overflow: hidden; - оно позволяет скрыть все лишнее.

CSS

div#all {
text-align:left;
width:750px;
margin:0 auto;
overflow: hidden;
}


Проблема решена, хоть и настолько радикальным способом. Приятного юзанья кода!


Уважаемый посетитель Российской школы CSS! Вы зашли на сайт как незарегистрированный пользователь. Мы рекомендуем Вам зарегистрироваться либо войти на сайт под своим именем. Спасибо за внимание!



---------------------------------------
---------------------------------------

Похожие публикации

Публикацию посмотрели 18834 раз(а) и написали 16 комментариев.
Комментарий #1 написал: Sheff (23 июля 2008 19:59)
Фото

Группа: Посетители
Комментариев: 26
Публикаций: 0
Репутация: 0 Зарегистрирован: 3.06.2008
чтот мне ето сложновато понять,вот незнаю почему
Комментарий #2 написал: OniX (23 июля 2008 20:03)
Фото

Группа: Администраторы
Комментариев: 36
Публикаций: 81
Репутация: 0 Зарегистрирован: 9.07.2008
Sheff, Я особо не вникал, но похоже, что автор урока решил доработать "Простой шаблон сайта №1", чтобы блоки "Навигация" и "Дополнительно" были одной высоты. Сейчас попробую.
Комментарий #3 написал: navigator (23 июля 2008 22:11)
Фото

Группа: Посетители
Комментариев: 10
Публикаций: 0
Репутация: 0 Зарегистрирован: 20.04.2008
а где демо, скачать? wassat


--------------------------
Таблици- верный способ избежать блочного гемороя!
Комментарий #4 написал: GZ Design (23 июля 2008 23:39)
Фото

Группа: Администраторы
Комментариев: 47
Публикаций: 156
Репутация: 2 Зарегистрирован: 7.04.2008
А зачем? Это дополнение к уроку у которого есть демо.
Комментарий #5 написал: Schmel100 (24 июля 2008 01:01)
Фото

Группа: Посетители
Комментариев: 18
Публикаций: 0
Репутация: 0 Зарегистрирован: 28.06.2008
Примерно тем же самым занимался сегодня... чуть голову себе не сломал пока сделал. Я так понял, что этому выучиться нельзя, просто нужно понимать и иметь достаточно опыта.


--------------------------
www.schmel100.110mb.com
Комментарий #6 написал: Al.B. (24 июля 2008 10:20)
Фото

Группа: Посетители
Комментариев: 4
Публикаций: 0
Репутация: 0 Зарегистрирован: 4.06.2008
нормальные резиновые сайты всегда сложнее, но в этом уроке нету ничего сложного. немного воображения и всё получится
Комментарий #7 написал: jacobson (1 августа 2008 11:54)
Фото

Группа: Посетители
Комментариев: 13
Публикаций: 0
Репутация: 0 Зарегистрирован: 21.07.2008
Чиновники от спорта, вкушая скромный ужин, smile
Из персональной ложи взирали на помост, smile
Где два борца в захвате кряхтели сильно тужась smile
Заглавный за столом поднял фужер: Есть тост
Большой (и малый) спорт стране сверх-архи-нужен, smile
Все силы отдадим, но не оставим пост! smile
Комментарий #8 написал: paralolka (6 августа 2008 03:30)
Фото

Группа: Посетители
Комментариев: 3
Публикаций: 0
Репутация: 0 Зарегистрирован: 5.08.2008
Урок хорош, спасибо, но хотелось бы кроме голого кода больше теоретической части, чтобы понимать механизм того или иного приема
Комментарий #9 написал: filipzas (10 августа 2008 22:11)
Фото

Группа: Посетители
Комментариев: 3
Публикаций: 0
Репутация: 0 Зарегистрирован: 10.08.2008
Ребята отлично спасибо!
Комментарий #10 написал: masy (30 августа 2008 09:10)
Фото

Группа: Посетители
Комментариев: 2
Публикаций: 0
Репутация: 0 Зарегистрирован: 30.08.2008
Спасибо автору урока ! Коротко и в тему !
Комментарий #11 написал: Тимон (2 ноября 2008 01:42)
Фото

Группа: Гости
Комментариев: 0
Публикаций: 0
Репутация: 0 Зарегистрирован: --
большое спс - очень помогло smile
Комментарий #12 написал: rezon (17 ноября 2008 20:05)
Фото

Группа: Гости
Комментариев: 0
Публикаций: 0
Репутация: 0 Зарегистрирован: --
заходите сюда,классно и все доступно
http://cssmake.ru/component/content/article/4/110.html
Комментарий #13 написал: Dima1_G (24 ноября 2008 08:43)
Фото

Группа: Посетители
Комментариев: 1
Публикаций: 0
Репутация: 0 Зарегистрирован: 24.11.2008
Здесь еще кода не хватает в html
дополнительный код: <link href="style.css" rel="stylesheet" type=text/css />
Комментарий #14 написал: wishcraft (17 января 2009 19:16)
Фото

Группа: Посетители
Комментариев: 2
Публикаций: 0
Репутация: 0 Зарегистрирован: 14.12.2008
Вот вопросик, это что?
Внимание! У вас нет прав для просмотра скрытого текста.

может тогда если пишем html тогда должно быть вот так:
Внимание! У вас нет прав для просмотра скрытого текста.
Комментарий #15 написал: f1losof (8 мая 2009 03:59)
Фото

Группа: Посетители
Комментариев: 4
Публикаций: 0
Репутация: 0 Зарегистрирован: 8.05.2009
Похоже что с кодом небольшие проблемы, но сам прием довольно прост для понимания.

У нас есть 2 или более колонок, которые мы хотим дотянуть до футера, колонки должны быть одинаковой высоты внезависимости от их "набивки".

Оборачиваем обе колонки в div.

html (прошу прощения за такую запись, но что то теги он не берет, но я думаю что и так будет понятно):
div id = wrapper
div id = left_col /div (закр. левую колонку)
div id = right_col /div (закр. правую колонку)
/div (закрыть wrapper)

Для обеих колонок создаем padding 1000em, я задаю в пикселях - это 32767px (максимум для Сафари) и отрицательный margin той же величины, но с обратным знаком (-32767px). Для родительского элемента, т.е wrapper задаем overflow:hidden - скрывая таким образом лишнее.

Все работает при соблюдении этих правил, если вкладываете в какую либо колонку еще один или несколько div, то задавайте указанные отступы только колонкам, а не вложенным в них элементам. Overflow следует задавать первому родительскому элементу и, следовательно, все отступы только первым потомкам!

Для корректного отображения в ie 5-5.5 - комментарий в html - для родительского элемента (#wrapper) растягиваемых колонок - overflow: visible и height: 100%. (советую лучше писать комментарий, а не хак.)
Комментарий #16 написал: DasBit (12 мая 2009 06:32)
Фото

Группа: Посетители
Комментариев: 35
Публикаций: 0
Репутация: 0 Зарегистрирован: 12.05.2009
Найс

Информация

Посетители, находящиеся в группе Гости, не могут оставлять комментарии к данной публикации.
Подписаться на канал RSS Добавить сайт в закладки
«    Май 2012    »
ПнВтСрЧтПтСбВс
 
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
 

© 2008-2011 Copyright, Российская школа CSS. CSS-School.RU. Все права защищены.
Designed by GZ Design, OniX © 2010 - 2011
Valid XHTML 1.0 Transitional Правильный CSS!