css - три ряда в окне, stick'ры
Добрый.
Как сделать так, чтобы окно было разделено на три части, верхняя и нижняя из которых отображались полностью всегда (были бы стикнуты соответсвенно к верху и низу), а средняя была видима настолько, насколько остается места + при скроле всей страницы скролилась бы только средняя часть. заранее спасибо. |
Обычно для этого используются layout-ы..
Типа как http://www.yui-ext.com/deploy/yui-ex...t/complex.html Если, конечно, допустимо использовать YUI.. |
Примерно так...
Код:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> |
layout'ы это хорошо, но здесь нельзя их использовать.
ну а с вариантом fixed хорошо (текст все равно налазит же, и надо делать отсупы для центрового элемента), но от IE никуда не уйти. попробую писать js, что делать... |
Хм, куда там налазит текст? Верний и нижний margin элемента с контентом просто должны быть равны высоте хедера и футера соответственно, а эмуляцию fixed для IE писали на js очень простую.
|
нижний и верхний элементы могут иметь произвольную высоту, изменяющуюся непредсказуемо.
|
Ну тогда javascript в помощь :)
|
вобщем, получилось как-то так:
вроде работает, хотя и не идеально: 1. в ie при скроле топ и боттом элементы колбасит 2. margin центрального элмента задается отдельным javascript'ом (а expression вообще где-то кроме ие работают?) 3. код выглядит весьма уродливо если кто может подсказать на будущее лучшее решение, - буду благодарен. всем ответившим в топике - большое спасибо. <html> <style type="text/css"> #top { position: fixed; top: 0; _position: absolute; _top: expression(eval(document.body.scrollTop)); width: 100%; background-color: #fff; } #bottom { position: fixed; bottom: 0; _position: absolute; _top: expression(document.body.scrollTop + document.body.clientHeight - this.clientHeight); width: 100%; background-color: #fff; } #content { margin-top: 50px; margin-bottom: 50px; } </style> <body> <div id='top'></div> <div id='content'></div> <div id='bottom'></div> <script type="text/javascript"> document.getElementById("content").style.marginTop = document.getElementById("top").clientHeight; document.getElementById("content").style.marginBottom = document.getElementById("bottom").clientHeight; </script> </body> </html> |
у среднего слоя сделать соотв. отступы
а для нижнего-верхнего position: fixed для для упрямого ie есть соотв. хак (посмотрите реализацию меню на http://xpoint.ru/) |
Цитата:
это вы прокоментировали мой код? хорошим тоном было бы привести код, или хотя бы ссылку на "соотв. хак", избавив пользователей от нужны искать по ужасному xpoint, на котором "реализаций" - тысячи. |
Часовой пояс GMT +3, время: 11:49. |