Добро пожаловать на mahmuds.narod.ru!
JavaScript, jQuery, PHP
Маленькая помощь в создании сайтов с использованием
технологий JavaScript, jQuery и PHP
Хитрости, советы, примеры
Footer внизу страницы
Клиент попросил прилепить footer к низу окна, но если страница по размерам больше размеров окна, то он должен быть в конце страницы. Т.е. свойство css "position: fixed" не прокатит. На помощь пришел всем известный jQuery.
Пусть страница имеет примерно такой вид:
<body>
 <div class="first">
  <!-- содержимое контейнера -->
 </div>
 <div class="second">
  <!-- содержимое контейнера -->
 </div>
</body>
В шапке страницы подключаем необходимые файлы:
<script type = "text/javascript" src = "jquery-1.4.2.min.js"></script>
<script type = "text/javascript" src = "footer.js"></script>
Файл footer.js содержит одну функцию getClientHeight(), которая возвращает размер окна браузера. Содержимое файла footer.js:
function getClientHeight() {
 if (window.opera) {
  return (self.innerHeight || ( de && de.clientHeight ) || document.body.clientHeight);
 } else {
  return document.compatMode=='CSS1Compat'?document.documentElement.clientHeight:document.body.clientHeight;
 }
}
В шапку страницы добавляем следующий JavaScript-код:
<script type = "text/javascript">
 function run() {
  jQuery('div.first').css('min-height',(getClientHeight() - parseInt(jQuery('div.second').css('height')))+'px');
 };
 window.onresize = run; // задавать ширину при изменении размеров окна
</script>
А сразу после обьявления нашего div.second :
<script type = "text/javascript">
 run();
</script>
Итого, страница будет выглядеть примерно так:
<html>
 <head>
  <script type = "text/javascript" src = "jquery-1.4.2.min.js"></script>
  <script type = "text/javascript" src = "footer.js"></script>
  <script type = "text/javascript">
  function run() {
   jQuery('div.first').css('min-height',(getClientHeight() - parseInt(jQuery('div.second').css('height')))+'px');
  };
  window.onresize = run;
  </script>
 </head>
 <body>
 <div class="first">
  <!-- содержимое контейнера -->
 </div>
 <div class="second">
   <script type = "text/javascript">
    run();
   </script>
   <!-- содержимое контейнера -->
  </div>
 </body>
</html>
Предложенный вариант работает во всех популярных браузерах (FireFox, Internet Explorer, Opera, Safari, Chrome). Копирайт внизу страницы сделан по этому ж принципу :)
Copyright MahmudS © 05.10.2010
Сайт управляется системой uCoz