В статье Шитова (студия Лебедева) описан полноценно работающий fixed.
Дошли у меня руки до создания такого fixed и решил попользоваться предложенным решением.
Но оно не заработало. Начал изучать исходный код статьи (ну там то работает) и в итоге выяснил, что дело в DOCTYPE. Как известно Лебедеву на него положить, а я вот написал его. Именно он выключал fixed в IE.
1й вариант Back to quirks
Если указать доктайп, то вся концепция летит в тартарары. Сделать так, чтоб код был валиден, и все работало оказалось (после 2х часов иностранного гугла) довольно легко – надо
перед доктайпом поставить пустой HTML комментарий. При этом:
1. Валидатор w3c говорит что код верный.
2. Огненнолис распознает доктайп и работает в соответствии с ним.
3. IE тупит – не находит доктайтпа на первой строчке и переходит в режим совместимости. Фиксед работает.
4 Опера на компьютере не стоит — ничего не скажу.
2й вариант Forward to DOCTYPEs
Почему это происходит?
Все как обычно очень просто. Шитов использует document.body.scrollTop; как, кстати говоря, и большинство пользователей интернета, постольку в свое время в поиске Яндекс выдавал мне только такую формулировку (и так же учат в интернете горе-программисты от JS, вот что можно сказать по существу о следовании стандарту w3c не вдаваясь в философские аспекты).
А в режиме соответствия стандарту у IE меняется объектная модель и надо использовать document.documentElement.scrollTop.
Проверил.
Код
h1 — действительно сверху, но теперь только при наличии DOCTYPE
Дошли у меня руки до создания такого fixed и решил попользоваться предложенным решением.
Но оно не заработало. Начал изучать исходный код статьи (ну там то работает) и в итоге выяснил, что дело в DOCTYPE. Как известно Лебедеву на него положить, а я вот написал его. Именно он выключал fixed в IE.
1й вариант Back to quirks
Если указать доктайп, то вся концепция летит в тартарары. Сделать так, чтоб код был валиден, и все работало оказалось (после 2х часов иностранного гугла) довольно легко – надо
перед доктайпом поставить пустой HTML комментарий. При этом:
1. Валидатор w3c говорит что код верный.
2. Огненнолис распознает доктайп и работает в соответствии с ним.
3. IE тупит – не находит доктайтпа на первой строчке и переходит в режим совместимости. Фиксед работает.
4 Опера на компьютере не стоит — ничего не скажу.
2й вариант Forward to DOCTYPEs
Почему это происходит?
Все как обычно очень просто. Шитов использует document.body.scrollTop; как, кстати говоря, и большинство пользователей интернета, постольку в свое время в поиске Яндекс выдавал мне только такую формулировку (и так же учат в интернете горе-программисты от JS, вот что можно сказать по существу о следовании стандарту w3c не вдаваясь в философские аспекты).
А в режиме соответствия стандарту у IE меняется объектная модель и надо использовать document.documentElement.scrollTop.
Проверил.
Код
body{
padding:5em 0 0 0;
}
h1{
position:fixed;
_position:absolute;
top:0;
_top:expression(eval(document.documentElement.scrollTop));
left:0;
margin:0;
padding:0;
background:lime;
}
h1 — действительно сверху, но теперь только при наличии DOCTYPE