Плохой рендеринг перед обновлением в IE7?

Я пытаюсь улучшить внешний вид своей веб-страницы в IE7. Это очень неприятно.

Одна из обнаруженных мною проблем изображена ниже. При переходе по ссылке на страницу рендеринг иногда прерывается странным образом - ниже кажется, что поля отключены, а цвет отсутствует. Однако, если вы обновите страницу, эта проблема исчезнет. Если вы обновляете страницу много и много раз, она больше не прерывается - рендеринг плох только при первом просмотре страницы, после нажатия ссылки или ввода URL-адреса в адресную строку.

Ты хоть представляешь, почему это могло быть? Я использую css3pie для создания фоновых градиентов и закругленных границ, поэтому проблема может быть отсюда. Или это ошибка IE, о которой я не знаю?

Мой сайт работает нормально в IE8, который также должен использовать css3pie для создания градиентов + границ.

РЕДАКТИРОВАТЬ: эта проблема с отображением устраняется при увеличении масштаба страницы. Некоторые вещи, которые я прочитал, похоже, указывают на то, что это известная проблема для некоторого рендеринга в IE6 / IE7, но я не могу понять, как ее исправить.

Внешний вид до обновленияВнешний вид после обновления


person Oliver    schedule 08.02.2012    source источник
comment
Вы уверены, что все ресурсы (например, изображения, файлы css, javascript) правильно загружаются при загрузке первой страницы?   -  person cdeszaq    schedule 08.02.2012
comment
@cdeszq Трудно быть уверенным, но страница загружается правильно во всех других браузерах, так что я так полагаю. Как я могу проверить?   -  person Oliver    schedule 08.02.2012
comment
всегда ли это при первой загрузке страницы или после внесения изменений?   -  person PAULDAWG    schedule 08.02.2012
comment
@PAULDAWG Всегда, когда страница загружается, даже после очистки кеша браузера.   -  person Oliver    schedule 08.02.2012
comment
Это странно. Может дело в гонке при загрузке? ваше меню загружено в какую-то переменную или что-то, что загружено в своего рода переменную сеанса? может случиться так, что страница загружается до завершения этой операции, а затем при обновлении ресурс присутствует. (дикая догадка, я знаю, но это дикая проблема)   -  person PAULDAWG    schedule 08.02.2012
comment
проверьте некоторые вставки с пустыми атрибутами src, поскольку этот вопрос кажется похожим stackoverflow.com/questions/1261186/   -  person PAULDAWG    schedule 08.02.2012
comment
@PAULDAWG Ничего из этого не исправляет. Я думаю, что это какая-то ошибка css: увеличение и уменьшение масштаба на странице (ctrl + колесо мыши) исправляет рендеринг. Я попытался поставить zoom:1; для всех элементов на странице, но это не помогло.   -  person Oliver    schedule 09.02.2012
comment
Есть ли живой пример этой проблемы?   -  person PAULDAWG    schedule 09.02.2012
comment
@PAULDAWG Спасибо за вашу помощь, думаю, теперь я ее взломал. Это как-то связано с хаком, который css3pie использует для обнаружения изменений позиции, иногда заставляющих исчезать верхние поля: css3pie. ru / documentation / known-issues / # hasLayout   -  person Oliver    schedule 09.02.2012


Ответы (2)


Я решил эту проблему, написав:

 <!--[if lte IE 7]>
<style type="text/css">
div {
    position:relative;
}
</style>
<![endif]-->

В верхней части страницы. Я не могу понять, почему возникает эта проблема - я думаю, что в механизме рендеринга для IE7 есть ошибка, которая означает, что элементы css3, сгенерированные css3pie, не имеют правильного поля. Другое решение - использовать padding вместо margin.

Я не могу понять, почему проблема исчезнет сама собой после обновления.

person Oliver    schedule 09.02.2012
comment
Интересно, исправит ли position:static это тоже, поскольку это значение по умолчанию. Рад, что вы нашли решение этой проблемы! - person PAULDAWG; 09.02.2012

Отключите кеширование файлов HTC в Apache

LocationMatch ".*\.htc"
Header Set Cache-Control "no-cache"
/LocationMatch
person Daan    schedule 14.03.2012