Расширение нижнего колонтитула (без Javascript?) - PullRequest
2 голосов
/ 22 июня 2011

У меня довольно заурядный веб-сайт: верхний и нижний колонтитулы.Верхний колонтитул и тело зеленого цвета, но нижний колонтитул черный.Сайт выглядит хорошо, когда имеется большой объем контента, но на страницах с одним или двумя абзацами нижний колонтитул не распространяется до нижней части страницы (особенно на больших мониторах), а зеленый фон сайта выходит за рамкинижний колонтитул - не тот эффект, которого я добиваюсь.

Есть ли способ установить высоту нижнего колонтитула, чтобы он доходил до нижней части страницы, независимо от содержимого и размера монитора?В идеале это было бы сделано без использования Javascript.

Ответы [ 4 ]

4 голосов
/ 22 июня 2011

Вы ищете липкий нижний колонтитул .У меня был хороший опыт с решением Райана Фейта , но этот новый липкий нижний колонтитул удается работать без лишних тегов.

Из экспозиции на липкомнижний колонтитул :

В голове:

<style type="text/css">
html, body {height: 100%;}
#wrap {min-height: 100%;}
#main {overflow:auto;
    padding-bottom: 150px;}  /* must be same height as the footer */
#footer {position: relative;
    margin-top: -150px; /* negative value of footer height */
    height: 150px;
    clear:both;} 
/*Opera Fix*/
body:before {
    content:"";
    height:100%;
    float:left;
    width:0;
    margin-top:-32767px;/
}
</style>
<!--[if !IE 7]>
<style type="text/css">
    #wrap {display:table;height:100%}
</style>
<![endif]-->

А для вашего тела:

<div id="wrap">
    <div id="main">
    <!-- Your content here -->
    </div>
</div>
<div id="footer">
</div>

Редактировать

Из вашего объяснения этоКажется, я вас неправильно понял.Вы ищете автоматически расширяющийся раздел, а не липкий нижний колонтитул.Если это так, вы можете получить этот эффект, используя display: table (хотя он не работает в таком количестве браузеров, как липкие нижние колонтитулы - например, в IE 7 происходит сбой).

Я создал пример здесь .

Код, для справки:

<!DOCTYPE html>
<html>
<head>
<meta charset=utf-8 />
<title>JS Bin</title>
<style type="text/css">
  html, body {
    height: 100%;
    margin: 0;
    min-height: 100%;
    padding: 0;
  }
  .Wrapper {
    display: table;
    min-height: 100%;
    min-width: 100%;
    height: 100%;
    width: 100%;
  }
  .Contents {
    background-color: #CCC;
    display: table-row;
    min-height: 100px;
  }
  .Footer {
    background-color: #0C0;
    display: table-row;
    min-height: 100%;
  }
  .data {
     display: table-cell;
  }
.Wrapper .data {
  height: 100px;
}
.Footer .data {
  height: 100%;
  min-height: 40px;
  background-color: #0C0;
}
</style>
</head>
<body>
<div class="Wrapper">
<div class="Contents">
<p class="data">&nbsp;</p>
</div>
<div class="Footer">
<p class="data">&nbsp;</p>
</div>
</div>
</body>
</html>
0 голосов
/ 22 июня 2011

предложил бы перейти на альтернативу js ... кажется, намного проще ... пожалуйста, сообщите нам, если есть какая-то конкретная причина, чтобы избежать стилевого оформления на основе js в вашем случае ... единственная другая альтернатива, о которой я мог бы подумать, это жесткое программирование div содержимого тела размеры и настройка положения нижнего колонтитула фиксированы .. не идеально

0 голосов
/ 22 июня 2011

Если я правильно понимаю ваш вопрос, вам нужно очистить нижний колонтитул, применив clear:both; в селекторе css для нижнего колонтитула.

0 голосов
/ 22 июня 2011

Вы можете добавить фиктивный элемент div и стиль, который с помощью CSS будет соответствовать высоте вашей панели навигации, а нижний колонтитул ниже этого элемента div всегда будет соответствовать желаемому стилю.Было бы лучше, если бы вы использовали какой-то JavaScript, это было бы совсем не сложно.

...