Задать вопрос
Вопрос задан
Изменён 5 лет 6 месяцев назад
Просмотрен 2k раза
Добрый день! Видел много подобных вопросов, но проблема вот в чем. Есть footer со стилями
.footer { position: static; bottom: 0px; padding: 10px; width: 100%; text-align: center; background: #262d33; } .footer p,ul,li,a{ list-style-type: none; padding: 0px; line-height: 7px; font-weight: bold; color: #97bcce; }
<div> <div> <div> <div> <div> <p>Наши услуги</p><br/> <ul> <li><a href="http://www.mypravo.kz/registration/">Регистрация бизнеса</a></li><br/> <li><a href="http://www.mypravo.kz/yurist/">Юридическое сопровождение</a></li><br/> <li><a href="http://www.mypravo.kz/licenzii/">Лицензирование в строительстве</a></li><br/> <li><a href="http://www.mypravo.kz/too_s_licenziey/">Продажа компаний</a></li><br/> <li><a href="http://www.mypravo.kz/buhgalter/">Бухгалтерское сопровождение</a></li><br/> <li><a href="http://www.mypravo.kz/predstavitelstvo/">Представительство в суде</a></li><br/> </ul> </div> <div> <p>ЮРИДИЧЕСКАЯ КОМПАНИЯ</p> <p>ИНТЕРПРАВO</p> <p>С 2009 года на рынке юридических услуг</p> </div> <div> <div> <div> <a href="tel:+77051350000">+7(705)1350000</a><br/> <i aria-hidden="true"></i> <i aria-hidden="true"></i> <i aria-hidden="true"></i> </div> </div> </div> </div> </div> </div> </div>
Если поставить в стилях position: absolute, при уменьшении окна футер начинает наезжать на блок content и перекрывает его. Подскажите как это возможно исправить? Спасибо!
- html
- css
1
На сайтах обычно делают так, чтобы боди был разделен на два огромных блока: мейн-контент и футер.
К мейн контенту в стилях пишут: flex: 1 0 auto;
к футеру: flex: 0 0 auto;
и к их обертке (боди):
display: flex; flex-direction: column; height: 100vh;
и все волшебным образом встает на свои места (не забывай для IE добавить префиксы: -ms-flex: 1 0 auto; рекомендую этот сервис на первое время https://autoprefixer.github.io/ru/)
3
Если без flex, то footer ставят position : fixed;
Как прижать футер к низу страницы?
Я думаю, при верстке, мало кто не столкнулся с проблемой «непослушного футера». Если контента много, то выглядит все прилично, но стоит оставить страницу без наполнения — как футер зависает по центру страницы.
- Отделяем футер от всего остального содержимого, помещая его за пределы обрамляющего блока wrapper.
- В файле стилей задаем высоту height у тегов html и body — 100%. Таким образом, растягиваем html и body на высоту экрана.
- Обрамляющему блоку wrapper задаем следующие параметры:
- min-height: 100%; — указываем минимальную высоту блока wrapper (Старые версии IE не понимают min-height).
- height: auto !important; — указываем на случай если контент будет занимать больше места, чем указанная высота. Таким образом, блок будет тянуться на высоту, занимаемую контентом.
- height: 100%; — задаем для старых версий браузеров IE.
- У тега content задаем нижний padding — 100px; Делается это для того, чтобы на это место поместить footer. Зачем — читаем ниже.
- Сейчас мы получили высоту страницы равную 100% + 100px. Лишние 100px убираем следующим образом: у тега footer задаем отрицательный верхний отступ, равный высоте футера (height: 100px;) margin-top: -100px; Свойство position: relative; С помощью отрицательного верхнего отступа мы полностью перемещаем футер на область блока wrapper, который занимает 100% экрана.
Применяя такой способ, футер будет всегда прижат к низу страницы.
Заменив теги html5 на обычные div, применяя к ним теже свойства работает и в старых версиях, даже в IE6.
html { height: 100%; } header, nav, section, article, aside, footer { display: block; } body { height: 100%; } #wrapper { width: 1000px; margin: 0 auto; min-height: 100%; height: auto !important; height: 100%; } #header { height: 150px; } #content { padding: 0 0 100px; height:400px; } #footer { width: 1000px; margin: -100px auto 0; height: 100px; position: relative; }
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 |
html { height: 100%; } header, nav, section, article, aside, footer { display: block; } body { height: 100%; } #wrapper { width: 1000px; margin: 0 auto; min-height: 100%; height: auto !important; height: 100%; } #header { height: 150px; } #content { padding: 0 0 100px; height:400px; } #footer { width: 1000px; margin: -100px auto 0; height: 100px; position: relative; } |
Расскажи друзьям:
Загрузка. ..
html — css привязка div к нижней части страницы
спросил
Изменено 2 месяца назад
Просмотрено 20 тысяч раз
Вскоре я могу отскочить головой от стены, я не могу поверить, что что-то настолько глупое, как это, полностью победило меня … поэтому я обращаюсь к вам, Переполнение стека … за руководством и просветлением.
Проблема: Разместите div в нижней части страницы, 100% ширины, вне какой-либо обертки.
Предлагаемое решение: http://ryanfait.com/sticky-footer/
Реализация с содержанием: http://www.weleasewodewick.com/redesign/index_content.html Реализация без контента: http://www.weleasewodewick.com/redesign/index.html
с контентом -> Хорошо, работает хорошо
без контента = плохо, нижний колонтитул находится точно на высоте нижнего колонтитула ниже окна просмотра.
Я был бы очень признателен за ваш вклад в это, это меня очень раздражает в течение последнего часа. Я полностью ожидаю некоторой формы насмешек 🙂
Пояснение: Нижний колонтитул должен быть прикреплен к нижней части окна просмотра, если контента недостаточно для заполнения страницы. Он должен двигаться вниз за пределы нижней части области просмотра, если имеется достаточное количество контента.
Спасибо!
Foxed
- html
- css
- макет
Думаю, это то, что вы ищете:
http://fortysevenmedia.com/blog/archives/making_your_footer_stay_put_with_css/
1
Извините, если я не правильно понял вопрос, но вы говорите о размещении нижнего колонтитула внизу страницы?
Попробуйте это:
#footer { ширина: 100%; высота: 150 пикселей; положение: фиксированное; внизу: 0px; слева: 0px; }
Если вы хотите, чтобы нижний колонтитул оставался на одном месте, измените атрибут position
на absolute
1
Это может помочь следующему человеку реализовать принятый ответ (от fortysevenmedia.com) при использовании Next.js.
Вы захотите изменить
html, body { высота: 100%; }
до
html, body, #__next { высота: 100%; }
( #__next
— это div-контейнер, который Next помещает внутрь
, который, таким образом, заключает в себе как div-контейнер, так и div нижнего колонтитула, что рекомендуется в принятом ответе — если вы не укажете ему высоту, ответ не сработает).
Зарегистрируйтесь или войдите в систему
Зарегистрируйтесь с помощью Google
Зарегистрироваться через Facebook
Зарегистрируйтесь, используя адрес электронной почты и пароль
Опубликовать как гость
Электронная почта
Требуется, но никогда не отображается
Опубликовать как гость
Электронная почта
Требуется, но не отображается
Приведение нижнего колонтитула HTML к нижней части страницы
Наличие нижнего колонтитула в нижней части HTML-страницы может быть очень полезным. Традиционно принудительное опускание нижнего колонтитула было довольно сложной задачей, если содержимое страницы не занимало всю высоту браузера. Но в настоящее время использование flexbox и некоторых автоматических марж может спасти положение.
При разработке HTML-страницы часто требуется добавить нижний колонтитул с дополнительной, но второстепенной информацией. Логично, что нижний колонтитул должен быть в самом низу страницы. Можно просто добавить разметку нижнего колонтитула в качестве последней части документа и на этом закончить. Это сработает, в основном. Но что происходит, когда содержимое страницы не заполняет всю высоту экрана пользователя? Ну и нижний колонтитул рендерится сразу после вашего контента и висит где-то посередине экрана. Это не то, чего мы хотели. К счастью, flexbox может спасти положение, не полагаясь на малоизвестные хаки!
Хотите сразу увидеть код и конечный результат? Вот кодандокс.
Позвольте мне рассказать вам об этом. Начнем с минимальной настройки HTML, просто чтобы было с чем работать.
<голова>Прилепленный нижний колонтитул <метакодировка="UTF-8" /> голова> <тело> <раздел>🔥Привет Нижний колонтитул внизу🔥
⬇️Этот контент не занимает всю высоту страницы. Нижний колонтитул принадлежит там внизу. ⬇️
раздел> <нижний колонтитул>🔥Я нижний колонтитул. Моя маржа толкает меня вниз.🔥 тело>
Все, что у нас есть, это короткая основная часть и нижний колонтитул. Это создаст нежелательный эффект плавающего нижнего колонтитула в середине экрана. Чтобы сделать этот нижний колонтитул липким, нам понадобится немного CSS.
Делаем нижний колонтитул липким
Мы будем использовать flexbox и margin, чтобы подтолкнуть нижний колонтитул к нижней части экрана.
- Установить контейнер на
display: flex;
. Контейнер — это тело в нашем примере. - Изменить направление гибкости
контейнеров: столбец
. Это позволяет нижнему колонтитулу располагаться ниже содержимого. - Придать контейнеру полную высоту с помощью
min-height: 100vh;
. Контейнер теперь достаточно большой, но нижний колонтитул все еще плавает где-то посередине. - Наконец, дайте нижнему колонтитулу достаточно полей с помощью
margin-top: auto;
. Это толкает нижний колонтитул вниз.
Все, футер будет внизу страницы, даже с небольшим содержанием. Обратите внимание, что когда контент становится больше, чем экран пользователя, нижний колонтитул также будет нормально размещаться внизу ваших страниц, без дополнительной работы.
Вот соответствующий CSS.
/* Использовать flex и установить автоматическое поле */ тело { дисплей: гибкий; flex-направление: столбец; мин-высота: 100вх; } нижний колонтитул { верхняя граница: авто; }
Спасибо webflow за видео, вдохновившее эту статью.
Надеюсь, это поможет вам создать следующий макет HTML.