Я использую Bootstrap 3 для сайта, который я проектирую.
Я хочу иметь нижний колонтитул, как этот образец. Образец
Пожалуйста, обратите внимание, что я не хочу, чтобы это было ИСПРАВЛЕНО, поэтому начальная загрузка navbar-fixed-bottom не решает мою проблему. Я просто хочу, чтобы он всегда был внизу контента, а также был отзывчивым.
Любой гид будет очень ценится.
РЕДАКТИРОВАТЬ:
Извините, если мне не ясно. Что происходит сейчас, так это когда в теле контента не хватает контента. Мой нижний колонтитул перемещается вверх, а затем оставляет пустое пространство внизу.
Это то, что у меня сейчас есть для моего navbar
<nav class="navbar navbar-inverse navbar-bottom" style="padding:0 0 120px 0">
<div class="container">
<div class="row">
<div class="col-sm-4">
<h5 id='footer-header'> SITEMAP </h3>
<div class="col-sm-4" style="padding: 0 0 0 0px">
<p>News</p>
<p>contact</p>
</div>
<div class="col-sm-4" style="padding: 0 0 0 0px">
<p>FAQ</p>
<p>Privacy Policy</p>
</div>
</div>
<div class="col-sm-4">
<h5 id='footer-header'> xxxx </h3>
<p>yyyyyyyyyyyyy</p>
</div>
<div class="col-sm-4">
<h5 id='footer-header'> xxxxx </h3>
<p>uuuuuuuuuuuuuuu</p>
</div>
</div>
</div>
</nav>
CSS
.navbar-bottom {
min-height: 300px;
margin-top: 100px;
background-color: #28364f;
padding-top: 35px;
color:#FFFFFF;
}
html
css
twitter-bootstrap
footer
user3169403
источник
источник
Ответы:
Смотрите пример ниже. Это позволит вашему нижнему колонтитулу придерживаться нижнего уровня, если на странице будет меньше контента, и будет вести себя как обычный нижний колонтитул, если на странице будет больше содержимого.
CSS
HTML
ОБНОВЛЕНИЕ : Новая версия Bootstrap демонстрирует, как добавить липкий нижний колонтитул без добавления оболочки. Пожалуйста, смотрите ответ Jboy Flaga для более подробной информации.
источник
Здесь есть упрощенное решение от начальной загрузки (где вам не нужно создавать новый класс): http://getbootstrap.com/examples/sticky-footer-navbar/
Когда вы откроете эту страницу, щелкните правой кнопкой мыши на браузере и «Просмотр источника» и откройте файл sticky-footer-navbar.css ( http://getbootstrap.com/examples/sticky-footer-navbar/sticky-footer-navbar. css )
Вы можете видеть, что вам нужен только этот CSS
для этого HTML
источник
используйте flexbox, так как вы можете использовать его в вашем распоряжении. Решение, предлагаемое загрузчиком 4, по-прежнему охотится на перекрывающийся контент в адаптивном макете, например: оно сломается в мобильном представлении, я натолкнулся на самую хитрую хитрость - использовать демонстрацию решения flexbox, показанную здесь :( https://philipwalton.github.io /olved-by-flexbox / demos / sticky-footer / ) таким образом, нам не нужно иметь дело с проблемой фиксированной высоты, которая на данный момент является устаревшим решением ... это решение работает для начальной загрузки 3 и 4, в зависимости от того, что вы используете.
источник
ОБНОВЛЕНИЕ: Это не дает прямого ответа на вопрос в целом, но другие могут найти это полезным.
Это HTML-код вашего отзывчивого нижнего колонтитула
Для CSS
ПРИМЕЧАНИЕ. Во время публикации этого вопроса приведенные выше строки кода не сдвигают нижний колонтитул ниже содержимого страницы; но он будет препятствовать ползанию нижнего колонтитула в середине страницы, когда на странице мало контента. Для примера, который толкает нижний колонтитул ниже содержимого страницы, посмотрите здесь http://getbootstrap.com/examples/sticky-footer/
источник
padding-bottom
основной контейнер содержимого равным высоте нижнего колонтитула. И вам нужно делать это динамически на страницеload
иresize
событиях, а также в нижнем колонтитулеDOMSubtreeModified
.Для людей, которые все еще борются, и решение, на которое ответили, работает не совсем так, как вы хотите, вот самое простое решение, которое я нашел.
Оберните ваш основной контент и назначьте ему минимальную высоту просмотра. Отрегулируйте 60 на любое значение, необходимое вашему стилю.
Вот и все, и это работает довольно хорошо.
источник
Гален Гидман опубликовал действительно хорошее решение проблемы гибкого нижнего колонтитула, который не имеет фиксированной высоты. Вы можете найти его полное решение в его блоге: http://galengidman.com/2014/03/25/responsive-furable-height-sticky-footers-in-css/
HTML
CSS
источник
Для чистого решения CSS прокрутите после 2-го
<hr>
. Первый - первоначальный ответ (дан еще в 2016 году)Главный недостаток вышеупомянутых решений - фиксированная высота нижнего колонтитула.
И это просто не врезается в реальный мир, где люди используют миллионы устройств и имеют плохую привычку вращать их, когда вы меньше всего этого ожидаете, и ** Poof! ** там идет содержание вашей страницы за нижний колонтитул!
В реальном мире вам нужна функция, которая вычисляет высоту нижнего колонтитула и динамически корректирует содержимое страницы
padding-bottom
в соответствии с этой высотой. И вам нужно запустить эту крошечную функцию для страницыload
иresize
событий, а также для нижнего колонтитулаDOMSubtreeModified
(на случай, если ваш нижний колонтитул динамически обновляется асинхронно или содержит анимированные элементы, которые изменяют размер при взаимодействии с ним).Вот подтверждение концепции с использованием jQuery
v3.0.0
и Bootstrapv4-alpha
, но нет причины, по которой он не должен работать на более низких версиях каждой из них.Показать фрагмент кода
Изначально я разместил это решение здесь, но понял, что оно может помочь большему количеству людей, если оно будет опубликовано под этим вопросом.
Примечание: я намеренно обернул его
$([selector]).accomodateFooter()
как плагин jQuery, чтобы его можно было запускать на любом элементе DOM, так как в большинстве макетов это не тот$('body')
,bottom-padding
который нуждается в настройке, а какой-то элемент обертки страницы сposition:relative
(обычно непосредственным родителемfooter
) ,Позднее редактирование (3+ года после первоначального ответа):
На данный момент я больше не считаю приемлемым использование JavaScript для размещения динамического нижнего колонтитула в нижней части страницы. Это может быть достигнуто только с помощью CSS, используя flexbox, молниеносно, кросс-браузер.
Вот:
Показать фрагмент кода
источник
Этот метод использует минимальную разметку. Просто поместите весь ваш контент в .wrapper, у которого padding-bottom и отрицательный margin-bottom равны высоте нижнего колонтитула (в моем примере 100px).
источник
Или это
источник
Для Bootstrap:
источник
navbar-fixed-bottom
это НЕ то, что решает проблему.Ни одно из этих решений точно не сработало для меня идеально, потому что в моем нижнем колонтитуле я использовал класс navbar. Но я получил решение, которое работало и не содержало Javascript. Использовал Chrome для помощи в формировании медиазапросов. Высота нижнего колонтитула изменяется по мере изменения размера экрана, поэтому вы должны обратить на это внимание и соответственно отрегулировать. Содержимое нижнего колонтитула (я задаю id = "footer" для определения моего содержимого) должно использовать postion = absolute и bottom = 0, чтобы держать его в нижней части. Также ширина: 100%. Вот мой CSS с медиа-запросами. Вам нужно будет настроить min-width и max-width и добавить или удалить некоторые элементы:
источник
Вот что сработало для меня с помощью Flexbox :
Источник: https://philipwalton.github.io/solved-by-flexbox/demos/sticky-footer/
источник