Загрузочный слой с надписью Footstrap

Я новичок в Bootstrap, и я пытаюсь использовать его с Symfony2. У меня уже есть главный лифтер, который используется для навигации. Моя проблема заключается в том, что я пытаюсь добавить аналогичный нижний колонтитул, который липкий снизу, но он перекрывает мой контент. Я использую JQuery script, чтобы избежать проблемы для верхней панели навигации, например:

$(document).ready(function(){
        $(document.body).css('padding-top', $('#topnavbar').height());
        $(window).resize(function(){
            $(document.body).css('padding-top', $('#topnavbar').height());
        });
    });

Структура моего основного шаблона Twig выглядит следующим образом:

    <div class="navbar navbar-default navbar-fixed-top" id="topnavbar">
      <div class="container-fluid">
      </div>
    </div>
    {% block body %}
    {% endblock %}
    <footer class="footer navbar-fixed-bottom">
    </footer>

Мой CSS оригинален. Я пытался с margin bottom или padding bottom, но перекрытие моего содержимого (в {% block body%}) всегда присутствует, и я не знаю, что делать, чтобы исправить его. У кого-нибудь есть идея?

Ответ 1

Это более старая тема без выбора ответа.

Я нахожусь в новом шаблоне Bootstrap, портируя его текущую тему в раздел Bootstrap по разделам:)

У меня есть липкий заголовок и хочу, чтобы нижний колонтитул был заблокирован снизу в ВСЕ. У меня было это работает, но когда я изменил его размер, чтобы увидеть его отзывчивым, нижний колонтитул перекрыл содержимое. Мне понадобилось дополнение/пробел между "контентом" и "нижним колонтитулом", чтобы он не выглядел собранным вместе.

margin-bottom на теге тела не работает, он добавил пробел ниже нижнего колонтитула. Когда вы думаете о том, как марка ведет себя на теге body, это имеет смысл.

Правильный ответ - использовать "padding-bottom" на теге body. Я использовал размер размером 6 пикселей больше, чем высота моего нижнего колонтитула, чтобы обеспечить это небольшое отступы/интервалы.

body {
    padding-bottom: 120px;
}

.footer {
  position: absolute;
  left: 0;
  bottom: 0;
  width: 100%;
  height: 114px;
}

Конечно, ваши высоты будут разными. Надеюсь, это поможет!

Ответ 2

Как стандарт, это ожидаемое поведение для верхних и нижних колонтитулов Bootstrap - они придерживаются верхней или нижней части и перекрывают основное содержимое. Решение для нижних колонтитулов должно добавить margin-bottom: [footer height]; к body, как в примере настройки на сайте Bootstrap:

липкий footer.css

body {
  /* Margin bottom by footer height */
  margin-bottom: 60px;
}

.footer {
  position: absolute;
  bottom: 0;
  width: 100%;
  /* Set the fixed height of the footer here */
  height: 60px;
  background-color: #f5f5f5;
}

Вы упомянули margin-bottom в своем вопросе, так что если это не сработает, возможно, вы могли бы опубликовать то, что вы на самом деле пробовали?

P.S. Это, вероятно, не имеет ничего общего с Symfony!

Ответ 3

Существует новое современное решение на основе flex-box.

body {
  display: flex;
  min-height: 100vh;
  flex-direction: column;
}

main {
  flex: 1;
}
<body>
  <header>Hey</header>
  <main>Here some content</main>
  <footer>And a perfect sticky footer without overlapping</footer>
</body>

Ответ 4

body {
  display: flex;
  flex-direction: column;
  min-height: 100vh;
}

.main-footer {
  margin-top: auto;
} 

Ответ 5

Сделать float: left он решил мою проблему .footer { float:left; }