Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

HTML+CSS+JavaScript

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Эмуляция свойств position:fixed; + bottom:0px; для IE (в режиме совместимости)
 
 автор: Гость   (17.02.2011 в 12:09)   письмо автору
1.7 Кб
 
 

IE (7, 8) в режиме совместимости не поддерживает position:fixed поэтому приходится извращаться используя expression для этого. Причем выражения для отображения сверху, слева и справа - я сделал без особых проблем, но нормального отображение блока "приклеенного внизу страницы" я достичь никакими средствами не смог. Надеюсь найдете ошибку у меня или наставите на путь истинный.

Фаил с примером приложил ("нормально" отображает верхний блок, но нижний - пцц ). Бьюсь уже третий день.

  Ответить  
 
 автор: Гость   (17.02.2011 в 12:28)   письмо автору
 
   для: Гость   (17.02.2011 в 12:09)
 

Соорудил вот такое решение:

"top: expression((document.getElementsByTagName('body')[0].scrollTop+document.body.clientHeight-document.getElementById('bottom').clientHeight-7) + \"px\");"


где вычитаемое число - это скажем так ширина бордюра. иначе прокрутка становится беконечной. Но что-то это решение мне не очень нравится

PS: забавно, но сколько раз замечал - стоит написать вопрос, как таки находишь решение.

  Ответить  
 
 автор: Crux   (17.02.2011 в 13:19)   письмо автору
 
   для: Гость   (17.02.2011 в 12:09)
 

Есть достаточно интересное решение: http://www.artlebedev.ru/tools/technogrette/html/emulate-fixed/

  Ответить  
 
 автор: Гость   (18.02.2011 в 06:28)   письмо автору
 
   для: Crux   (17.02.2011 в 13:19)
 

Спасибо, но если бы был доступ к исходной странице - я бы просто указал доктайп. Тем паче, что поддержка IE6 не нужна. Но решение и правда оригинальное, возьму на заметку.

  Ответить  
 
 автор: Абырвалг   (18.02.2011 в 13:22)   письмо автору
 
   для: Гость   (17.02.2011 в 12:09)
 

<script>
function iefix ()
{
if (navigator.userAgent.indexOf ('MSIE') < 0) return;
var Dcmnt = document, Bttm = Dcmnt.getElementById ('bottom'), DcmntBd = Dcmnt.body;
Bttm.style.position = 'absolute'; Bttm.style.zIndex = 999;
DcmntBd.onscroll = DcmntBd.onresize = function FnctnScrllRsz ()
   {
   var Dcmnt = document, Bttm = Dcmnt.getElementById ('bottom'), DcmntBd = Dcmnt.body;
   Bttm.style.top  = DcmntBd.clientHeight + DcmntBd.scrollTop - Bttm.offsetHeight;
   Bttm.style.left = (DcmntBd.clientWidth - Bttm.offsetWidth) / 2 + DcmntBd.scrollLeft;
   }
FnctnScrllRsz ();
}
</script>

И определитесь, наконец, с идентификаторами элементов :-)
Они у Вас одновременно и id="bottom", и id="test" (и, аналогично, - и id="top", и id="test").
Что-то надо зачеркнуть.
И я знаю - что именно.
Но не скажу :-)

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования