2011-01-21 3 views
4

Если на странице не хватает контента, например 300 пикселей, нижний колонтитул появится в середине страницы с разрешением 1024 пикселя.CSS - сделайте нижний колонтитул высоты FLUID в нижней части страницы

Как я могу сделать вывод нижнего колонтитула внизу страницы, не зная высоты нижнего колонтитула?

Я попытался this решение:

/* css */ 
html, body { 
    height: 100%; 
} 

#container { 
    min-height: 100%; 
    position: relative; 
} 

#footer { 
    position: absolute; 
    bottom: 0; 
} 


<!-- html --> 
<html> 
<head></head> 

<body> 
    <div id="container"> 
    <div id="footer"></div> 
    </div> 
</body> 
</html> 

, но проблема в том, что мне нужно, чтобы добавить padding-bottom: (footerheight); в элементе перед #footer. Это невозможно, потому что высота нижнего колонтитула варьируется в зависимости от страницы ...

+0

не обязательно является наиболее эффективным методом, но вы могли бы просто иметь встроенный CSS на каждой странице, которые регулируют эти конкретные элементы. – DaiYoukai

+0

У вас есть возможность использовать Javascript/jQuery? Кажется сложным или невозможным выполнить только с CSS, если вы не будете следовать совету Archonix. – mVChr

+0

jquery делает страницу «мерцает» до тех пор, пока нижний колонтитул не будет зафиксирован. если есть javascript-решение, которое не производит этого мерцания, да, я бы с удовольствием его использовал :) – Alex

ответ

2

Почему бы вам просто не использовать минимальную высоту в области содержимого, поэтому, если вы установили минимальную высоту в 600 пикселей, если только 300 пикселей содержимое будет заполнять нижний колонтитул еще на 300 пикселей, поэтому он не находится посередине экрана.

+4

Откуда вы знаете, что 600 пикселей не находится посередине экрана? Что делать, если у меня есть экран с разрешением 1200 пикселей? – himself

0

Вы не можете избежать этого, но есть трюк: сделайте фоновый рисунок тела тем же, что и нижний колонтитул, а затем установите все остальное содержимое внутри контейнера сверху тела.

Это сделает нижний колонтитул 75px. Обратите внимание на соответствующий маркер -75px контейнера div.

html { 
    height:100%; 
    padding:0px; 
    margin:0px; 
} 
body { 
    height:95%; 
    padding:0px; 
    margin:0px; 
    background-color:#1C303C; 
} 

footer { 
    background-color:#1C303C; 
    color:#FFFFA3; 
    display:block; 
    position:absolute; 
    width:100%; 
    min-height:75px; 
    height:75px; 
    margin:0px; 
    padding:0px; 
    left:0px; 

} 

#container { 
    background-color:#FFFFFF; 
    min-height:100%; 
    height:100%; 
    width:100%; 
    top:0; 
    left:0; 
    margin: 0; 
    padding:0; 
    margin-bottom:-75px; 
} 

с соответствующим HTML следующим образом:

<body> 
    <div id="container"> 
    </div> 
    <footer> 
    </footer> 
</body> 
Смежные вопросы