Я в целом знаком с техникой очистки нижнего колонтитула с помощью CSS.
Но у меня возникли некоторые проблемы с получением такого подхода к загрузке Twitter, скорее всего, из-за того, что загрузчик Twitter по своей природе отзывчив. Используя загрузчик Twitter, я не могу заставить нижний колонтитул переместиться вниз страницы, используя подход, описанный в посте блога выше.
css
twitter-bootstrap
footer
Кельвин Ченг
источник
источник
Ответы:
Найденные фрагменты здесь работают очень хорошо для начальной загрузки
Html:
CSS:
источник
Теперь это включено в Bootstrap 2.2.1.
Bootstrap 3.x
Используйте компонент navbar и добавьте
.navbar-fixed-bottom
класс:Bootstrap 4.x
Не забудьте добавить
body { padding-bottom: 70px; }
или иначе содержание страницы может быть покрыто.Документы: http://getbootstrap.com/components/#navbar-fixed-bottom
источник
navbar-static-bottom
.Рабочий пример для Twitter-бутстрапа NOT STICKY FOOTER
Версия, которая всегда обновляется, если пользователь открывает окно devtools или изменяет размеры.
Вам нужен хотя бы элемент с
#footer
Если вам не нужна полоса прокрутки, если контент помещается на экран, просто измените значение с 10 на 0.
Полоса прокрутки появится, если контент не помещается на экран.
источник
$('#footer').height();
на$('#footer').outerHeight();
$(window).resize(function() {//main code goes here});
и вызовите его,$(window).resize();
чтобы установить его при загрузке страницы.Вот как это сделать на официальной странице:
http://getbootstrap.com/2.3.2/examples/sticky-footer.html
Я только что проверил это прямо сейчас, и это работает здорово! :)
HTML
Соответствующий код CSS это:
источник
Для Sticky Footer мы используем два
DIV's
в HTML для базового эффекта липкого нижнего колонтитула . Напишите так:HTML
CSS
источник
Гораздо проще официальный пример: http://getbootstrap.com/examples/sticky-footer-navbar/
источник
Ну, я нашел смесь
navbar-inner
иnavbar-fixed-bottom
Вроде хорошо и у меня работает
Смотрите пример в Fiddle
источник
В последней версии bootstrap 4.3 это можно сделать с помощью
.fixed-bottom
класса.Вот как я использую его с нижним колонтитулом:
Вы можете найти больше информации в документации о положении здесь .
источник
Ответ от HenryW хороший, хотя мне нужно было несколько настроек, чтобы все заработало так, как я хотел. В частности, следующее также обрабатывает:
Вот что сработало для меня с этими настройками:
HTML:
CSS:
JavaScript:
источник
Это сработало для меня отлично.
Добавьте этот класс navbar-fixed-bottom в нижний колонтитул.
Я использовал это так:
И он устанавливает снизу по всей ширине.
Изменить: Это сделает нижний колонтитул всегда видимым, это то, что вы должны принять во внимание.
источник
Вам нужно обернуть ваш
.container-fluid
div, чтобы ваш липкий нижний колонтитул работал, вам также не хватает некоторых свойств в вашем.wrapper
классе. Попробуй это:Удалите
padding-top:70px
из вашегоbody
тега и включите его в свой.container-fluid
, например, такМы должны сделать это, потому что нажатие
body
вниз, чтобы разместить навигационную панель, в конечном итоге толкает нижний колонтитул немного дальше (на 70 пикселей дальше) за область просмотра, поэтому мы получаем полосу прокрутки. Мы получаем лучшие результаты,.container-fluid
вместо этого нажимая div.Затем мы должны удалить
.wrapper
класс за пределами вашего.container-fluid
div и обернуть#main
его этим следующим образом:Ваш нижний колонтитул, конечно, должен быть вне
.wrapper
div, поэтому удалите его из div .wrapper и поместите его снаружи, вот так:После того, как все это сделано, правильно подвиньте нижний колонтитул ближе к вашему
.wrapper
классу, используя отрицательное поле, например:И это должно работать, хотя вам, вероятно, придется изменить несколько других вещей, чтобы заставить его работать при изменении размера экрана, например сбросить высоту в
.wrapper
классе, например:источник
Это правильный способ сделать это с помощью Twitter Bootstrap и нового класса navbar-fixed-bottom: (вы не представляете, сколько времени я потратил на это)
CSS:
HTML:
источник
Используйте утилиты flex, встроенные в Bootstrap 4! Вот что я придумал, используя в основном утилиты Bootstrap 4.
.d-flex
сделать основной div гибким контейнером.flex-column
на главном div, чтобы расположить ваши flex-элементы в столбцеmin-height: 100vh
в основной div, либо с атрибутом style, либо в вашем CSS, чтобы заполнить область просмотра по вертикали.flex-grow-1
в контейнере элемент, чтобы основной контейнер содержимого занимал все пространство, оставшееся в высоте области просмотра.источник
min-height: 100vh
вmin-vh-100
классе с Bootstrap можно использовать.Используйте компонент navbar и добавьте класс .navbar-fixed-bottom:
добавить тело
источник
для обработки макетов с ограничением ширины используйте следующее, чтобы вы не получили закругленные углы, и чтобы ваша панель навигации была заподлицо с краями приложения
затем вы можете использовать css для переопределения классов начальной загрузки для настройки высоты, шрифта и цвета
источник
Вы можете использовать jQuery для обработки этого:
источник
Единственный, который работал на меня!
источник
Самым простым методом, вероятно, является использование Bootstrap
navbar-static-bottom
в сочетании с установкой основного контейнера div с помощьюheight: 100vh
(новый процент просмотра порта CSS3 ). Это приведет к сноске нижнего колонтитула.источник
Проверено с
Bootstrap 3.6.6
.HTML
CSS
источник
Высота нижнего колонтитула соответствует размеру нижнего отступа элемента переноса.
источник
Вот решение для новейшей версии Bootstrap (4.3 на момент написания) с использованием Flexbox.
HTML:
CSS:
И пример codepen: https://codepen.io/tillytoby/pen/QPdomR
источник
В соответствии с примером Bootstrap 4.3 , в случае, если вы теряете здравомыслие, как я, это действительно работает:
height: 100%
(h-100
класс)display: flex
(d-flex
класс)margin-top: auto
(mt-auto
класс)Проблема в том, что в современных интерфейсных средах у нас часто есть дополнительные обертки вокруг этих элементов.
Например, в моем случае с Angular я создал представление из отдельного корня приложения, основного компонента приложения и компонента нижнего колонтитула - все они добавили свой собственный элемент в DOM.
Итак, чтобы это работало, мне нужно было добавить классы к этим элементам-оберткам: дополнительные
h-100
, переместитьd-flex
один уровень вниз и переместитьmt-auto
один уровень вверх от нижнего колонтитула (так что на самом деле это уже не класс нижнего колонтитула, а мой<app-footer>
пользовательский). элемент).источник
class="h-100"
на<html>
тег тоже.Используйте этот кусок кода в начальной загрузке, это работает
источник
Bootstrap v4 + решение
Вот решение, которое не требует переосмысления структуры HTML или каких-либо дополнительных хитростей CSS, связанных с отступами:
Обратите внимание, что это решение позволяет использовать нижние колонтитулы с гибкой высотой, что особенно удобно при разработке страниц для экранов нескольких размеров с переносом содержимого при сокращении.
Почему это работает
style="height:100%;"
заставляет<html>
тег занимать все пространство документа.d-flex
устанавливаетdisplay:flex
для нашего<body>
тега.flex-column
устанавливаетflex-direction:column
для нашего<body>
тега. Его дети (<header>
,<main>
,<footer>
и любой другой прямой ребенок) теперь выровнены по вертикали.h-100
устанавливаетheight:100%
наш<body>
тег, то есть он будет покрывать весь экран по вертикали.flex-grow-1
устанавливаетflex-grow:1
наш<main>
, эффективно инструктируя его заполнить все оставшееся вертикальное пространство, таким образом, достигая 100% вертикальной высоты, которую мы установили ранее для нашего<body>
тега.Рабочая демонстрация здесь: https://codepen.io/maxencemaire/pen/VwvyRQB
См. Https://css-tricks.com/snippets/css/a-guide-to-flexbox/ для получения дополнительной информации о flexbox.
источник
h-100
класс не работает должным образом, лучше использоватьmin-vh-100
.h-100
класс всегда зависит от высоты родительских элементов и в некоторых случаях может не работать должным образом. Поскольку мы хотим, чтобы нижний колонтитул находился внизу области просмотра, было бы полезно использовать высоту области просмотра.min-width
. Вот почемуHTML
тег имеетheight
100% в коде. Этот пример работает, и я не понимаю, почему он не дал кросс-браузерную поддержку дляheight
свойства CSS , что в конечном итоге и переводит фрагмент Bootstrap.HTML
теге. В моем случае ваше решение не сработало, так как я не предпочитаю использовать стиль вHTML
теге. И я не хочу, чтобыbody
тег зависел от другого родителя, а от области просмотра. Не нужно ставитьstyle="height:100%;"
иh-100
одновременно. Помещениеmin-vh-100
в тело просто делает работу и меньше кода.Похоже, что
height:100%
«цепь» разрывается наdiv#main
. Попробуйте добавитьheight:100%
к нему, и это может приблизить вас к вашей цели.источник
Здесь вы найдете подход в HAML ( http://haml.info ) с навигационной панелью вверху и нижним колонтитулом внизу страницы:
источник
Будь проще.
Вам также может понадобиться сместить высоту нижнего колонтитула, добавив
margin-bottom
эквивалент высоты нижнего колонтитула вbody
.источник
Вот пример использования css3:
CSS:
HTML:
играть на скрипке
источник
Вот как загрузчик делает это:
http://getbootstrap.com/2.3.2/examples/sticky-footer.html
Просто используйте источник страницы, и вы сможете увидеть. Не забудьте
<div id="wrap">
верх.источник
другое возможное решение, просто используя медиа-запросы
источник