IE6 и 7 абсолютная ошибка позиционирования - PullRequest
3 голосов
/ 02 февраля 2011

После тестирования небольшого сайта, который я создал для своей школы в Firefox, SeaMonkey, Chrome, Opera, Safari, Camino и IE8, я обнаружил, что абсолютно позиционированные div моего сайта все довольно устойчивы.

Однако, когда я начал тестировать сайт в IE6 и 7, все div неуместны и запутаны по всей странице.

Я потратил две недели на поиск в Google и пытался выяснить, в чем проблема, однако я до сих пор не могу найти последовательный способ решить эту проблему.

Надеюсь, я был достаточно ясен, извините, если мой английский не очень хорош, это мой третий язык.

Если вам нужно больше разъяснений, пожалуйста, не стесняйтесь спрашивать.

Любая помощь приветствуется.

Спасибо за ваше время.

Примечание. Как уже было сказано выше, я знаю, что существует множество решений и аналогичных вопросов, однако я не смог найти подходящего в этой ситуации.

ОБНОВЛЕНИЕ: свойство Zoom устранило большинство проблем, которые у меня были, hasLayout, кажется, очень болезненный. Спасибо, Спудли и Патрик

Ответы [ 2 ]

5 голосов
/ 02 февраля 2011

Это звучит как классическая ошибка "HasLayout", которая является одним из запретов в жизни каждого веб-разработчика, который должен поддерживать более старые версии IE.

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

Способ решения проблемы - заставить рассматриваемые элементы получить флаг HasLayout.К сожалению, IE не предоставляет прямой способ сделать это;Вы должны применить стиль, который запускает его.

Как правило, стиль, который люди выбирают для этого:

.myelelement {
    zoom:1;
}

Причины этого, во-первых, в том, что zoom является IE-специфический атрибут таблицы стилей, и поэтому он не влияет на другие браузеры, и, во-вторых, потому что zoom:1; является значением по умолчанию, поэтому вы ничего не меняете в элементе.Несмотря на это, он по-прежнему вызывает элемент, чтобы получить флаг HasLayout, и, следовательно, должен решить ваши проблемы.

Надеюсь, это поможет.

2 голосов
/ 02 февраля 2011

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...