Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

HTML+CSS+JavaScript

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: див-подложка постоянно в низу страницы
 
 автор: SHAman   (30.01.2007 в 16:05)   письмо автору
 
 

Подскажите как сделать: Есть див, который всегда должен быть в низу страницы. Кроме этого, он должен немного заезжать под контент, который расположен выше. Я сделал как умел - а оно в FF не отображает дно вообще, а в IE7 дно сползает в самый верх контента.

Вот примерный код:

<div id="all_content">

</div>
<div id="all_bottom">

</div>

И стили:

#all_content     {
    height: 100%;
}
#all_bottom     {
    clear: both;
    width: 100%;
    height: 329px;
    position: relative;
    top: -150px;
    margin-bottom: -150px;
    z-index: -1;
}

   
 
 автор: Lelik   (30.01.2007 в 16:08)   письмо автору
 
   для: SHAman   (30.01.2007 в 16:05)
 

а ты не пробовал упростить?

/* это для оперы и ФФ */
html {height:100%;}
body
{
height:100%;
}
#all_content     {
    height: 100%;
}
#all_bottom     {
    width: 100%;
    height: 329px;

   
 
 автор: SHAman   (30.01.2007 в 16:13)   письмо автору
 
   для: Lelik   (30.01.2007 в 16:08)
 

И что это даст? Повторюсь: мне нужно, чтобы это див всегда был в низу, да еще и заезжал немного под верхний блок. Проблема еще в том, что блок #all_content не растягивается по высоте почему-то. Даже если ему указать height 100%, то если вывести от него бордеры, он будет в линию.

   
 
 автор: Lelik   (30.01.2007 в 16:15)   письмо автору
 
   для: SHAman   (30.01.2007 в 16:13)
 

<div id="all_content">
&nbsp;
</div>
<div id="all_bottom">
&nbsp;
</div> 

так пробовал?

   
 
 автор: Lelik   (30.01.2007 в 16:17)   письмо автору
 
   для: SHAman   (30.01.2007 в 16:13)
 

да, кстати, ты не могбы выложить иллюстрацию по теме?

   
 
 автор: AlexSol   (30.01.2007 в 16:17)   письмо автору
 
   для: Lelik   (30.01.2007 в 16:08)
 

http://www.cssstyle.ru/article/exampl/freim.html

http://www.dynamicdrive.com/style/layouts/category/C11/

   
 
 автор: 12345   (30.01.2007 в 16:27)   письмо автору
 
   для: AlexSol   (30.01.2007 в 16:17)
 

Весь контент при этом должен быть тоже в диве с absolute и z-index, большим, чем у подложки.

   
 
 автор: SHAman   (30.01.2007 в 16:48)   письмо автору
223.1 Кб
 
   для: 12345   (30.01.2007 в 16:27)
 

Видимо, я не правильно выразился. Я имел ввиду, что дно не внизу экрана, а внизу страницы. Иллюстрация по теме в аттаче. Я не знаю уже что с этим делать.

Нужно, чтобы дно было снизу. Дно - это и нижний градиент тоже. Соответственно, нужно, чтобы градиент немного залезал под контент.

   
 
 автор: AlexSol   (30.01.2007 в 16:59)   письмо автору
 
   для: SHAman   (30.01.2007 в 16:48)
 

в соседней теме человека не туда послал :(
это тебе нужно http://www.themaninblue.com/experiment/footerStickAlt/

   
 
 автор: 12345   (30.01.2007 в 17:54)   письмо автору
 
   для: SHAman   (30.01.2007 в 16:48)
 

Тут особой проблемы тоже нет, только скриптом надо контролировать размер при ресайзе.

Сначала выводится страница со всем контентом (иначе как же мы узнаем его размеры?). Контент при этом в конструкции:

div
  div - скелет
  div - content
/div
Footer
Сначала ничто не абсолютное, размеры скелета - 0, Затем ставим скелет под размеры контента минус высоту, на сколько надо наезжать на футер. Контент превращаем в absolute.

Хотя... Может, бы и про футер неправильно выразились?

   
 
 автор: SHAman   (30.01.2007 в 18:05)   письмо автору
 
   для: 12345   (30.01.2007 в 17:54)
 

all_bottom должен:
1) не висеть в воздухе
2) быть немного под (по оси z) вышестоящими блоками

Если я не ошибаюсь, то выложенный мной пример работает в IE6 и Opera8.

Скриптами решать такую проблему, имхо, последнее дело. Должно быть решение при помощи CSS. Я верю в это!

   
 
 автор: 12345   (30.01.2007 в 18:44)   письмо автору
 
   для: SHAman   (30.01.2007 в 18:05)
 

Если размер контента или хотя бы самой нижней её части фиксирован, то да - вешаем её сверху через absolute. Но если такого участка выделить нельзя, то выше описал.
1),2) - описание выше не противоречит. Футер не абсолютный.

   
 
 автор: SHAman   (30.01.2007 в 19:06)   письмо автору
 
   для: 12345   (30.01.2007 в 18:44)
 

Размер контента, конечно, изменяется постоянно, так что через absolute не катит.
Правило, которое я где-то видел
bottom: 0px; при absolute - тоже не пашет.

Люди, залезьте пожалуйста в мой исходник и поправьте стиль для all_bottom. По-ходу, это все, что нужно. Просто, я не знаю как это сделать самому. :(

   
 
 автор: AlexSol   (30.01.2007 в 21:22)   письмо автору
 
   для: SHAman   (30.01.2007 в 19:06)
 

что с табой случилося?
ну красиво, молодец.


автор: AlexSol   (30.01.2007 в 16:59)  
это тебе нужно http://www.themaninblue.com/experiment/footerStickAlt/

   
 
 автор: SHAman   (01.02.2007 в 12:20)   письмо автору
 
   для: AlexSol   (30.01.2007 в 21:22)
 

Блин, действительно... вот что значит - работать сутками. Уже не соображал. Выспался - и все разобрал : ) Спасибо большое, народ.

ЗЫ. Единственное, что - все равно у меня не отображается дно в FF. Ну да фиг сним! Подлый лис мне никогда не нравился. Главное, теперь в обоих IE и Опере отображается грамотно. Спасибо большое всем.

Нужно было дописать:

html, body {
height: 100%;
}
HTML #container { 
position: relative; 
min-height: 100%; 
height: auto !important; 
height: 100%; 
}


Мдя... нужно срочно учить зачем нужно писать первое, как определяется загадочное auto, что такое !important.

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования