long content here
Три дня не спал, но решил задачку с footer-ом.
Оказалось не просто, а очень просто, особенно для тех, кто умеет писать под FireFox. Без position: absolute, html, body { height: 100% }, всяких overflow, IE-хаков, javascript и прочей чепухи.
Во-первых, javascript не помогает, потому что FireFox не соблюдает высоту div-а, даже если она установлена из javascript.
Можно было подобрать атрибуты css, но мне стало влом возиться, потому что задача снова вернулась в область css.
(К тому же скроллинги на javascript всегда тормознутые, лучше бы использовать expression, а для Internet Explorer все и так работает без javascript.)
Короче, ДАРЮ РЕШЕНИЕ на память о бессонных ночах.
Стиль:
<style type="text/css"><!-- body { border-style: none; border-width: 0px; margin: 0 } /* FireFox only */ div { box-sizing: border-box; -moz-box-sizing: border-box } #wrapper { height: 100% } html>body #wrapper { display: table; height: 0%; min-height: 100% } --> </style>
Страница:
<!-- wrapper (FOOTER HEIGHT HERE) --> <div id="wrapper" style="position: relative; width: 100%; margin-bottom: 80px"> long or short content here </div> <!-- end wrapper --> <!-- footer (FOOTER HEIGHT HERE) --> <div id="footer" style="position: relative; margin-top: -80px; top: 0px; height: 80px; width: 100%"> footer here </div> <!-- end footer -->
Комментарии:
Ладно, в борьбе за валидность обойдемся без html>body. В стиле только:
#wrapper { height: 100%; display: table; min-height: 100% }
и в самом div-е нижний margin 0px:
<div id="wrapper" style="position: relative; width: 100%; margin-bottom: 0px">
Подозрительно как-то, но вроде работает. Пример здесь. (Тут два примера, закомментированный сделан с помощью _height)
end line