Подтвердить что ты не робот

CSS для фиксированного нижнего колонтитула

У меня довольно простая HTML-страница. Код выглядит следующим образом:

<body>
  <header style="min-height: 255px;">
  </header>

  <article style="padding-bottom: 60px; width: 900px; margin: 0 auto;">
    Body text goes here.
  </article>

  <footer style="position: absolute; bottom: 0px; width: 100%; height: 60px; background-color: black;">
    Copyright information
  </footer>
</body>

Обычно мой текст тела довольно большой. Текст достаточно велик, что требуется полоса прокрутки. Похоже, что нижний колонтитул сидит поверх текста внизу. Затем, когда я прокручиваю вниз, нижний колонтитул не фиксируется. Что я делаю неправильно?

Спасибо

4b9b3361

Ответ 1

Вам нужно position:fixed; в нижнем колонтитуле:

<body>
  <header style="min-height: 255px;">
  </header>

  <article style="padding-bottom: 60px; width: 900px; margin: 0 auto;">
    Body text goes here.
  </article>

  <footer style="position: fixed; bottom: 0px; width: 100%; height: 60px; background-color: black;">
    Copyright information
  </footer>
</body>

Ответ 2

Измените position: absolute нижнего колонтитула на position: fixed.

http://jsfiddle.net/SUQuX/

Почему? Это объясняет, как они отличаются https://css-tricks.com/absolute-relative-fixed-positioining-how-do-they-differ/ Я думаю, что в вашем случае проблема заключается в том, что элемент absolute прикрепляется к телу, будет прокручиваться с телом.

Ответ 3

Используйте position: fixed вместо position: absolute.

<footer style="position: fixed;">

Почему? Это объясняет, как они отличаются https://css-tricks.com/absolute-relative-fixed-positioining-how-do-they-differ/ Я думаю, что в вашем случае проблема в том, что абсолютный элемент прикрепляется к телу, поэтому он будет прокручивать с телом.

Ответ 4

Я пишу этот ответ, потому что я думаю, что это может помочь кому-то в будущем. Я столкнулся с проблемой даже после определения height нижнего колонтитула и margin-bottom для тела. Проблема в том, что если у вас есть отзывчивый сайт, где высота нижнего колонтитула динамически изменяется в зависимости от размера экрана, у вас будет перекрытие содержимого. Чтобы решить эту проблему, я использовал jQuery - сохраняйте все настройки одинаковыми, за исключением margin-bottom для body и height нижнего колонтитула.

var footerHeight = $('#main_footer').outerHeight(); // get the footer height excluding margin
    $('#main_footer').css('height', footerHeight + "px");
    $('body').css('margin-bottom', footerHeight + 10 + "px");

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