Проблемы CSS3PIE в IE6 и 8 - PullRequest
       1

Проблемы CSS3PIE в IE6 и 8

0 голосов
/ 10 января 2011

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

В IE8 я обнаружил, что любой элемент, имеющий поведение PIE, будет вести себя странно. Контейнер перепрыгнет на несколько пикселей вправо, но содержимое останется в своем первоначальном положении, создавая впечатление, что весь контент сместился влево относительно своего контейнера. Это было бы особенно проблематично для элементов без или с небольшим количеством заполнения.

Мне удалось обойти проблему в IE8 с помощью X-UA-Compatible, но я бы предпочел избежать этого решения, если это вообще возможно. У меня нет доступа к IE9 для тестирования, но мои хаки для понимания, такие как PIE, не нужны, и было бы расточительно устанавливать режим совместимости в браузере, в котором он не нужен.

У меня есть худшие проблемы в IE6, когда макет PIE полностью разбит на список, настроенный на использование элементов списка display:inline; zoom:1; (для имитации встроенного блока, который работает в IE8 и других браузерах). Здесь границы элементов списка отображаются совершенно не в том месте.

Так что в идеале я бы хотел, чтобы PIE работал правильно в IE6 и IE8 без необходимости прибегать к режиму совместимости. Что касается IE6, то подойдет изящный запасной вариант, когда PIE просто не применяется. IE7 - единственный браузер, где страница отображается так, как задумано.

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

Продолжение:

Вот некоторые снимки экрана, сделанные с помощью IE Tester. Я надеюсь, что они сделают вещи немного более понятными для всех. Как видите, IE7 в порядке. Однако в IE8 контейнеры смещены влево относительно их содержимого, а в IE6 элементы списка (с округленной границей в 1 пиксель) представляют собой полный беспорядок!

Internet Explorer 8 with offset boxes IE7 is correct IE6 is really mangled!

Полноразмерные версии для IE8 , IE7 и IE6 также доступны

Продолжение 2

Вот ссылка на демонстрационную страницу.

Поскольку другие дизайнеры работают над таблицами стилей и другими частями дизайна, я не могу обещать, что он будет оставаться полностью отражающим очень долго, но, надеюсь, будет достаточно долго, чтобы решить проблему. (Да, я знаю, что в IE6 есть ошибки JS, это не моя проблема).
Пример страницы

Ответы [ 3 ]

1 голос
/ 01 июня 2011

У меня возникла похожая проблема с IE8. Элементы, к которым был применен ПИРОГ, сначала будут отображаться на 10-20 пикселей ниже, а затем подпрыгивать до нужной позиции Применение правила «display: inline» к элементу, казалось, остановило проблему. «Позиция: относительная;» и "zoom: 1" для элемента или родительского элемента, кажется, не имеет никакого эффекта.

Это немного странно. Как только правило «display: inline» будет применено, проблема исчезнет обновить. Но если вы удалите правило, оно все равно выглядит нормально при обновлении, пока вы закройте и снова откройте окно браузера - затем прыжок снова появится.

Надеюсь, это кому-нибудь поможет.

1 голос
/ 10 января 2011

Я предпочитаю использовать http://www.curvycorners.net/

0 голосов
/ 14 января 2011

Попробуйте добавить

position:relative;
z-index: 0;

как предложено здесь http://css3pie.com/forum/viewtopic.php?f=3&t=10

Этот вопрос похож на тот, который был опубликован здесь: CSS3 PIE - не работает поддержка IE border-radius?

...