Я прибыл сюда в поисках решения аналогичной проблемы, которая заключалась в том, чтобы иметь панель нижнего колонтитула, которая охватывает ширину окна и находится под содержимым (переменной высоты и ширины). Другими словами, создайте впечатление, что нижний колонтитул «фиксирован» по отношению к своему горизонтальному положению, но сохраняет свое обычное положение в потоке документов по отношению к его вертикальному положению. В моем случае текст нижнего колонтитула был выровнен по правому краю, поэтому мне удалось динамически регулировать ширину нижнего колонтитула. Вот что я придумал:
HTML
<div id="footer-outer">
<div id="footer">
Footer text.
</div><!-- end footer -->
</div><!-- end footer-outer -->
CSS
#footer-outer
{
width: 100%;
}
#footer
{
text-align: right;
background-color: blue;
/* various style attributes, not important for the example */
}
CoffeeScript / JavaScript
(Используя prototype.js).
class Footer
document.observe 'dom:loaded', ->
Footer.width = $('footer-outer').getDimensions().width
Event.observe window, 'scroll', ->
x = document.viewport.getScrollOffsets().left
$('footer-outer').setStyle( {'width': (Footer.width + x) + "px"} )
который компилируется в:
Footer = (function() {
function Footer() {}
return Footer;
})();
document.observe('dom:loaded', function() {
return Footer.width = $('footer-outer').getDimensions().width;
});
Event.observe(window, 'scroll', function() {
var x;
x = document.viewport.getScrollOffsets().left;
return $('footer-outer').setStyle({
'width': (Footer.width + x) + "px"
});
});
Это прекрасно работает в FireFox и довольно хорошо в Chrome (немного нервно); Я не пробовал другие браузеры.
Я также хотел, чтобы любое свободное пространство под нижним колонтитулом было другого цвета, поэтому я добавил этот footer-stretch
div:
HTML
...
</div><!-- end footer -->
<div id="footer-stretch"></div>
</div><!-- end footer-outer -->
CSS
#footer-outer
{
height: 100%;
}
#footer-stretch
{
height: 100%;
background-color: #2A2A2A;
}
Обратите внимание, что для работы div # footer-stretch все родительские элементы до элемента body (и, возможно, элемента html - не уверен) должны иметь фиксированную высоту (в данном случае height = 100%).
person
Waz
schedule
27.06.2012