2015-06-17 36 views
0

Хорошо, у меня есть проблема, чтобы заставить нижний колонтитул на дно, когда недостаточно содержимого, чтобы его туда направить.Нижний нижний нижний колонтитул

Я частично решил проблему. Это простой дизайн, у меня заголовок, содержание и нижний колонтитул, все внутри обертки div.

html, 
body { 

margin:0; 
padding:0; 
height:100%; 
font: sans-serif; 
} 

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

#content { 
padding: 2% 5%; 
max-width: 940px; 
margin: 0 auto; 
padding-bottom:80px; /* Height of the footer element */ 
clear: both; 
background-color: yellow; 
} 

footer { 
background:#ffab62; 
width:100%; 
height:80px; 
position:absolute; 
bottom:0; 
left:0; 
font-size: 0.75em; 
text-align: center; 
padding-top: 30px; 
clear: both; 
color: #ccc; 
} 

Я использовал цвет фона, чтобы увидеть положение элементов на странице. Поэтому, когда недостаточно содержания, нижний колонтитул находится внизу, и все в порядке. Когда есть более чем достаточно, нижний колонтитул перекрывает некоторые из них, он фиксируется, когда я помещаю позицию в нижний колонтитул вместо абсолютного, но затем на страницы, где недостаточно содержания, нижний колонтитул не находится внизу. Фиксирование другого не является хорошим и исправление того, что другая первая страница не хороша .. Есть ли какое-то решение, которое может помочь мне решить эту проблему ...

+1

Возможно ли, чтобы мы увидели демонстрацию или код html тоже? – divy3993

+0

Это классическая проблема; с несколькими различными сценариями, больше кода/полного кода или онлайн-демо поможет! –

ответ

0

Отрегулируйте min-height: до минимального значения, в котором вы хотите, чтобы нижний колонтитул закончился, 100% будет располагать его прямо ниже ваш контент (который должен быть по умолчанию в любом случае, даже не объявляя), о котором вы сказали, недостаточно долго; сделайте minimum-height: 900px; или аналогично тому, где вы хотите, чтобы минимальная конечная точка находилась там, где будет находиться нижний колонтитул.

Если нижний колонтитул находится в правильном месте в HTML, но он плавает. Затем рассмотрим ниже.

display:inline-block; 

добавить в нижний колонтитул.

footer { 
    display: inline-block; 
} 

Если они не работают, покажите свой HTML!

+0

Можете ли вы объяснить более подробно мне, я не понимаю, какой элемент вы думаете, когда говорите, отрегулируйте минимальную высоту.? Это простая модель, как я уже сказал, заголовок, содержание и нижний колонтитул, все внутри оболочки с именем wrap. Все, что я хочу, - это нижний колонтитул, расположенный внизу, когда содержимого недостаточно, но когда есть достаточно контента, я не хочу footer, чтобы перекрывать его, поскольку он делает прямо сейчас с этими стилями, которые я применил ... И я хочу сделать это в простом решении html/css без JS или jQuery. – Constantine1001

+0

Можете ли вы опубликовать свой ПОЛНЫЙ код, включая HTML, здесь или внутри jsfiddle.net demo, и я дам вам ответ;) –

+0

https://jsfiddle.net/be7dm7sn/ Теперь я думаю о другом варианте. У меня есть заголовок, содержание и нижний колонтитул, поэтому, если я создаю фиксированную высоту заголовка, я могу сделать min-height для контента calc (100% -header-footer) или использовать вместо 100% внутри функции calc, этот новый vh (viewport) в CSS ? – Constantine1001

0

Вы почти сделали это :)

Ваше содержание DIV является перекрывающихся липкую колонтитула из-за его высоты. Просто используйте высоту: calc (100% - footer_height); и начните свой контент, где заканчивается ваш заголовок.

Это пример использования JSFiddle.

CSS файл

html, 
body { 
    margin: 0; 
    height: 100%; 
} 

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

.header { 
    background: #d6d6d6; 
    position: absolute; 
    height: 80px; 
    width: 100%; 
    top: 0; 
    left: 0 
} 
.content { 
    position: absolute; 
    top: 80px; 
    left: 0; 
    width: 100%; 
    height: calc(100% - 80px); 
    background: yellow; 
} 
.footer { 
    background: #d6d6d6; 
    position: absolute; 
    height: 80px; 
    bottom: 0; 
    left: 0; 
    width: 100%; 
    clear: both; 
} 

Я надеюсь, что это полезно.

+0

Хорошо, теперь мой контент не является перекрывается нижним колонтитулом, но теперь он перекрывает заголовок. – Constantine1001

+0

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

+0

Да, кажется, что Ты прав. Я скопировал некоторый текст lorem в контенте, и он перекрылся. Попытка еще нескольких вещей. –