IE8 CSS Абсолютное Позиционирование Случайная Ошибка - PullRequest
1 голос
/ 13 октября 2009

Я столкнулся с расстраивающей, но, казалось бы, случайной ошибкой рендеринга в IE8. У меня есть некоторые абсолютно позиционированные элементы на странице (позиционированные по отношению к телу страницы), отображение которых переключается с помощью jQuery.

8 раз из 10 элементов отображаются правильно, но иногда позиционирование не выполняется, и они просто размещаются в верхнем левом углу окна браузера (фактически абсолютное позиционирование сверху 0, слева 0).

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

Я задаю правильный DOCTYPE на странице, чтобы браузер не находился в режиме причуд.

Есть идеи, как с этим бороться или кто-нибудь еще сталкивался с подобным?

Ответы [ 4 ]

3 голосов
/ 13 октября 2009

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

, например

  1. скрыть объект
  2. установить положение
  3. Показать объект

Объект будет отображаться в левом верхнем углу, пока позиция не будет установлена ​​снова или размер окна не изменится, что заставит IE пересчитать позиции

1 голос
/ 23 декабря 2011

Была похожая проблема -> текстовое поле IE8 не редактировалось (когда обертка моего приложения имеет позицию: абсолютная). Клик работал только на границе. Заполненный цветом и прозрачный тоже не работал. С этим изменением типа документа проблема устранена.

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">

Источник: http://www.codingforums.com/showthread.php?p=1173375#post1173375

1 голос
/ 30 декабря 2009

Вы пробовали определенные свойства IE8:

-ms-background-position-x: 1px; -ms-background-position-y: 29px;

Они работают только в IE8 и решают эту проблему.

0 голосов
/ 28 января 2010

Я тоже это испытал, я использую некоторые jquery, чтобы показать абсолютно позиционированный элемент, который виден только при нажатии другого элемента. Как странно, что Microsoft продолжает неправильно понимать основы.

...