2013-09-11 5 views
43

Что лучше всего подходит для настройки веб-страницы, так что если на этой веб-странице будет отображаться очень мало контента/текста, нижний колонтитул отображается внизу окна браузера и не на полпути вверх по веб-странице?Как сохранить нижний колонтитул внизу экрана

+11

'позиция: фиксированная; снизу: 0; левый: 0; правая: 0; высота: 30px;' –

+0

Можете ли вы показать, что вы пробовали до сих пор? –

+1

хорошей практикой является сначала поиск других подобных обсуждений, например http://stackoverflow.com/questions/643879/css-to-make-html-page-footer-stay-at-bottom-of-the-page-with -a-minimum-height – fcalderan

ответ

58

Что вы ищете является CSS Sticky Footer.

* { 
 
    margin: 0; 
 
    padding: 0; 
 
} 
 

 
html, 
 
body { 
 
    height: 100%; 
 
} 
 

 
#wrap { 
 
    min-height: 100%; 
 
} 
 

 
#main { 
 
    overflow: auto; 
 
    padding-bottom: 180px; 
 
    /* must be same height as the footer */ 
 
} 
 

 
#footer { 
 
    position: relative; 
 
    margin-top: -180px; 
 
    /* negative value of footer height */ 
 
    height: 180px; 
 
    clear: both; 
 
    background-color: red; 
 
} 
 

 

 
/* Opera Fix thanks to Maleika (Kohoutec) */ 
 

 
body:before { 
 
    content: ""; 
 
    height: 100%; 
 
    float: left; 
 
    width: 0; 
 
    margin-top: -32767px; 
 
    /* thank you Erik J - negate effect of float*/ 
 
}
<div id="wrap"> 
 
    <div id="main"></div> 
 
</div> 
 

 
<div id="footer"></div>

+3

по какой-то причине добавление ломает нижний колонтитул. – surya

+5

Мой нижний колонтитул не имеет фиксированной высоты ... он может различаться на разных устройствах или между портретным и альбомным форматом. Как это сделать? – newman

+0

@miliu, как рассчитана высота вашего нижнего колонтитула?Если вы используете относительные значения (например, ems или vh/vw), вы можете, вероятно, включить здесь одни и те же значения. Если это сложнее, функция CSS [calc()] (https://developer.mozilla.org/en/docs/Web/CSS/calc) может пригодиться. В качестве последнего средства рассмотрите возможность динамического изменения свойства с помощью JavaScript с использованием полученных измерений, например, с помощью [Element.getBoundingClientRect] (https://developer.mozilla.org/en-US/docs/Web/API/Element/getBoundingClientRect) или JQuery. – Hubert

0

установить свою позицию: фиксированный и снизу: 0, так что он всегда будет находиться в нижней части окна браузера

+0

Может ли кто-нибудь обосновать, почему это было приостановлено? Я думаю, что это был самый простой способ сохранить элемент в нижней части окна просмотра. –

+7

Да. Он был занижен, потому что, если страница имеет больше содержимого на странице, нижний колонтитул по-прежнему остается внизу страницы независимо от высоты документа. Это неправильное поведение. – Radu

-4

использовать этот стиль

min-height:250px; 
height:auto; 
23

Вы можете использовать position:fixed; для bottom.

например:

#footer{ 
position:fixed; 
bottom:0; 
left:0; 
} 
+32

Затем он отображается в нижней части экрана независимо от того, – mwieczorek

+7

@mwieczorek eh, я думаю, это зависит от того, что вы хотите? Я бы не сказал, что предложение Chamara было плохим. Это было то, что я хотел, и это сработало для меня :) On экранное разрешение ize, мой нижний колонтитул остается там, где я хочу: внизу страницы. Спасибо, Чамара. – user123456

+0

спасибо .. это сработало. –

1

HTML

<div id="footer"></div> 

CSS

#footer { 
    position:absolute; 
    bottom:0; 
    width:100%; 
    height:100px; 
    background:blue;//optional 
} 
+1

Абсолютное позиционирование - лучший способ обеспечить разрывы разметки на определенных устройствах. – mwieczorek

0

Пожалуй, проще всего использовать position: absolute, чтобы зафиксировать снизу, затем подходящий запас/отступы, чтобы убедиться, что другой текст не разливается поверх него.

CSS:

<style> 
    body { 
    margin: 0 0 20px; 
    } 
    .footer { 
    position: absolute; 
    bottom: 0; 
    height: 20px; 
    background: #f0f0f0; 
    width: 100%; 
    } 
</style> 

Вот HTML основное содержание.

<div class="footer"> Here is the footer. </div> 
+9

Это работает, если содержимое не занимает полную страницу. Он разбивается, когда вы добавляете больше контента. – RSSM

+1

Downvote: Как сказал RSSM, он ломается, если страница выше экрана. На самом деле, не рекомендую это. –

+1

Tbh Я не уверен, что я думал, когда писал этот код. В то время это казалось разумным ... ':) –

Смежные вопросы