Я приїхав сюди, шукаючи рішення подібної проблеми, яка полягала в наявності нижнього колонтитула, який охоплює ширину вікна та розміщується нижче вмісту (змінної висоти та ширини). Іншими словами, дайте зрозуміти, що нижній колонтитул «закріплений» щодо свого горизонтального положення, але зберігає своє нормальне положення в документообігу щодо свого вертикального положення. У моєму випадку у мене текст нижнього колонтитула був вирівняний по правому краю, тому мені вдалося динамічно регулювати ширину нижнього колонтитула. Ось що я придумав:
HTML
<div id="footer-outer">
<div id="footer">
Footer text.
</div>
</div>
CSS
#footer-outer
{
width: 100%;
}
#footer
{
text-align: right;
background-color: blue;
}
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>
<div id="footer-stretch"></div>
</div>
CSS
#footer-outer
{
height: 100%;
}
#footer-stretch
{
height: 100%;
background-color: #2A2A2A;
}
Зверніть увагу, що для того, щоб # footer-stretch div працював, усі батьківські елементи до елемента body (і, можливо, елемент html - не впевнений) повинні мати фіксовану висоту (у цьому випадку висота = 100%).