Как IE7 лучше IE6?
Часто в сообществе веб-разработчиков вы слышите, как люди жалуются на разработку для IE6. Однако, если вы разрабатываете использование надежной инфраструктуры JavaScript, такой как jQuery, для IE6 разрабатывается не что иное, как разработка для IE7?
Ответы
Ответ 1
Я добавлю несколько пунктов, которые не были перечислены:
- Ширина CSS строго соблюдается: IE7 в режиме соответствия стандартам теперь строго интерпретирует стили
width
в CSS. В IE6, если у вас есть дочерний элемент с width
, который больше родительского элемента, он часто игнорирует объявление width
родителя и расширяется, чтобы соответствовать ребенку, часто требуя, чтобы hacks overflow: hidden
убедитесь, что родитель не расширился.
Это в основном хорошая вещь, но, к сожалению, вводит ряд других причуд, например. <table style="width: 100%">
в прокручиваемом DIV с CSS overflow
, установленном на overflow: auto
или scroll
, расширит таблицу до ширины прокрученного DIV, включая ширину вертикальной полосы прокрутки, поэтому часть таблицы будет отключена полоса прокрутки справа.
- Cleartype с отключенными фильтрами DirectX: IE7 отключает cleartype (сглаживание шрифтов на ЖК-мониторах) для элементов, которые имеют фильтры DirectX, такие как альфа-прозрачность и градиенты. Это хорошо в некотором смысле, поскольку cleartype сделал элементы с фильтрами, особенно полужирным, очень размытым/нечетким, но это плохо, потому что теперь он делает текст блочным и псевдонимом на ЖК-дисплеях.
IE7 Я думаю, что теперь поддерживает alpha: 1.0
, а также filter: alpha(opacity=100)
-
Исправлена ошибка SELECT z-index: IE7 исправил ошибку, в которой элементы SELECT
имеют бесконечный z-индекс и всегда находятся над другими элементами, если вы не поставите IFRAME
между из SELECT
и элемента, который вы хотите отобразить над ним. Это проблема для меню и т.д.
-
Улучшения псевдоклассов CSS: :hover
и некоторые другие подобные состояния CSS теперь поддерживаются вне гиперссылок.
-
Производительность не всегда улучшалась: В IE7 появилось много ошибок в этом движке VML, а в IE8 VML теперь в 10 раз медленнее, чем в IE7, когда в режиме соблюдения стандартов, так что это не совсем хорошо. Кроме того, у меня есть тестовые примеры, которые показывают, что обнаружение offsetLeft
и offsetTop
событий мыши в режиме соблюдения стандартов в IE7 также может быть примерно в 10 раз медленнее в моем веб-приложении.
IE в режиме quirks, хотя он имеет одинаковую производительность для VML и offsetLeft/Top
в IE6, 7 + 8. Мой опыт в режиме соблюдения стандартов IE7 на самом деле намного медленнее, чем режим соблюдения стандартов в IE6, хотя он определенно намного более совместим.
Я думаю, что это немного обоюдоострый меч, но, поскольку производительность JavaScript-кода улучшилась, такие вещи, как работа с методами массива и для циклов, улучшили даже хотя я думаю, что механизм рендеринга и многие связанные с ним методы DOM стали намного медленнее в режиме соблюдения стандартов в IE7 +.
Ответ 2
- Он может корректно отображать альфа-каналы PNG.
- Вычисления для размеров ящиков не так далеки от стандартов.
- Рендеринг и производительность JavaScript фактически позволяют вам делать что-то фантастическое, не замораживая пользовательскую машину время от времени.
- Были устранены некоторые проблемы с безопасностью.
В отношении других браузеров он не показывает никакого улучшения, потому что другие достигли гораздо большего прогресса в одно и то же время. Это все еще худший из главных браузеров и боль в b * tt для разработчиков.
Ответ 3
IE7 поддерживает прозрачность png, что очень помогает в поддержке графических ресурсов для сайта.
Ответ 4
IMO, существует мир различий между IE6 и IE7.
- IE7 поддерживает встроенный XMLHTTP, тогда как в IE6 для него требуется элемент управления ActiveX.
- IE7 поддерживает несколько дополнительных псевдоклассов
- В IE7 исправлены некоторые проблемы с z-порядком и масштабированием.
- IE7 исправил "несколько" проблем с коробкой.
- Добавлена поддержка IE7 для дочернего селектора
>
- IE7 добавила поддержку смежных (
+
) селекторов
- Поддержка прозрачности PNG
Ответ 5
Я думаю, что большинство улучшений в IE7 были основаны на производительности (javascript) и пытались приблизиться к соблюдению стандартов для CSS.
В верхней части моей головы это были некоторые из основных улучшений, о которых я помню:
- Исправлена ошибка с двойными полями
- Исправлено множество проблем с моделью коробки и позиционированием наследования
- Включение панели инструментов разработчика в браузер (не исправление ошибок, но большое для меня)
- Как отмечают другие, правильная обработка PNG
Это был гораздо лучший браузер, сравнивая его с IE6, когда вы сравниваете его с другими браузерами сегодня, не так много.
Ответ 6
Чуть; с точки зрения усиления IE7 в соблюдении стандартов, это незначительно. Все версии Internet Explorer до сегодняшнего дня, включая IE8, имеют ужасные перерывы в реализации JavaScript, CSS и DOM. Большинство хакеров, которые вы используете для IE6, все еще применяются для более поздних версий. Тем не менее, с яркой стороны IE9 формируется, чтобы быть неплохим, и большой прогресс был достигнут (я никогда не думал, что я действительно это скажу).
Различия и различия в реализации между спецификацией и другими браузерами, такими как Firefox и Chrome, намного меньше.
Я бы рекомендовал статью Марка Уилтона-Джонса о многочисленных недостатках IE для получения дополнительной информации.
Ответ 7
Рамки Javascript и CSS минимизируют количество повреждений, вызванных IE6, но по-прежнему существует множество ошибок и несоответствий между IE6 и другими браузерами.
IE7 лучше IE6, но только просто.
Ответ 8
Лично, самая неприятная вещь в IE6 - отсутствие прозрачности PNG. Это приводит к необходимости использования AlphaImageLoader для изображений. Последствия этого порождают собственные ошибки/неспособности. Например, прозрачные фоны с использованием AlphaImageLoader не могут повторяться.
Кроме того, существуют ошибки, такие как ошибка double margin, отсутствие поддержки минимальной высоты и минимальной ширины, добавление дополнительной строки перерывы на плавающие элементы, отсутствуют селектора css.