пристыковака блока по вертикали
Добрый день.
Возникла такая задачка. Сайт состоит из трёх блоков: header, content, footer. Все они во всю ширину документа. Для header и footer высота известна, скажем 50px, для content - зависит собственно от содержимого. Требуется, чтобы в случае, когда содержимое content мало и умещается на экране, то footer был не сразу под ним, а стыковался к низу экрана, причём в случае resize'а он не плавал за нижней рамкой окна. А если содержимого много и размер документа превышает окно, то тогда как обычно - footer идёт сразу под content, возникает скроллинг. Т.е. грубо говоря нужно следующее: если максимальное разрешение по высоте окна браузера равно y, то минимальная высота документа становится y, и footer всегда стыкуется ровно к низу документа. Спасибо за внимание) |
В интернете есть решения. Нужно только поискать;)
|
Решение то в принципе есть http://www.xiper.net/html-and-css-tr...al-k-nizu.html
использовать min-height у содержимого и отрицательный margin-top у футера.
<html>
<head>
<title>Футер прижат к низу</title>
<style type="text/css">
* {margin: 0; padding: 0;} /* обнуляем отступы */
body {
background: #fff;
}
html,body {
height: 100%; /* задаем высоту тела документа */
}
.main { /* основной блок, который должен растянуться до подвала */
background: #999; /* цвет фона основного блока (для наглядности) */
min-height: 100%; /* задаем минимальную высоту основного блока */
}
* html .main { /* хак для ie6 */
height: 100%; /* для ие6, т.к. не понимает min-height */
}
.hFooter { /* это распорка в основном блоке - резервируем место для подвала */
height: 40px; /* высота нашего подвала */
}
.footer { /* подвал */
background: #0000CC; /* цвет фона подвала (для наглядности) */
color: #fff;
height: 40px; /* высота подвала */
margin-top: -40px; /* делаем отрицательный отступ по высоте равный высоте подвла, чтобы четко вписаться в размер экрана */
}
</style>
</head>
<body>
<div class="main">
Это основной блок
<div class="hFooter"></div>
</div>
<div class="footer">Это подвал</div>
</body>
</html>
НО! В итоге в элементах списка расположенных в нижней части контента, возникает баг в IE7 - некорректно работает mouseover/mouseout. |
Что там за баг не скажу, но можно попробовать сменить технику "подвал всегда снизу" Есть различные вариации
|
Выкристаллизовал проблему. Заодно и нашёл как от бага уйти. Проблема в ИЕ7 в том, что нижний li подсвечивается только пока курсор на его тексте(это также видно по тому как пропадает pointer).
<!DOCTYPE HTML PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<style type="text/css">
html, body, form
{
height: 100%;
}
.main
{
min-height: 100%;
}
li
{
border: White 1px solid;
width: 100%;
cursor: pointer;
}
.highlight
{
border-color: orange;
}
</style>
<script language="javascript" type="text/javascript" src="jquery-1.4.2.js"></script>
<script language="javascript" type="text/javascript">
$(function () {
$('li').hover(function () {
$(this).toggleClass('highlight');
}, function () {
$(this).toggleClass('highlight');
});
});
</script>
</head>
<body>
<form>
<div class="main">
<ul>
<li>
<div>
Текст запроса: Ангелы вернулись к Уралу
</div>
<div>
Период: все даты
</div>
</li>
</ul>
<div style="height: 2000px;">
</div>
<ul>
<li>
<div>
Текст запроса: Ангелы вернулись к Уралу
</div>
<div>
Период: все даты
</div>
</li>
</ul>
</div>
</form>
</body>
</html>
Проблема решается путём задания фона li, в данном случае white. Но откуда вообще эта проблема, теряюсь в догадках. |
Тема - аццкий баян!!! Пользуйтесь поиском!!!
|
Соглашусь с вами, уважаемый, тема названа "аццкобаянно".
Нужно было просто спросить почему в стандартном решение "прибивания футера" возникает такой-то баг. |
Остерегитесь от использования минус-марджинов без необходимости.
В Вашем случае может помочь задание футеру position: relative. |
Спасибо за совет)
|
| Часовой пояс GMT +3, время: 18:02. |