Internet Explorer 7, что изменилось в поведении браузера?
- Internet Explorer 7, что изменилось в поведении браузера?
(20492) - CSS-фильтр для Gecko
(15770) - Текст с переливом
(8651) - Вертикальное выравнивание текста
(0 / 6) - CSV на веб-страницах
(0 / 1) - Таблицы с вертикальным направлением текста
(0 / 9) - «Полосатые таблицы» средствами CSS
(0 / 8) - Всплывающие подсказки в духе AJAX
(0 / 9) - Табличная верстка блоками
(0 / 13) - Закругляем уголки границ у блоков
(0 / 1)
Наконец свершилось то, чего веб-общественность ожидала долгих 5 лет. 18 октября 2006 года состоялся официальный релиз седьмой версии Internet Explorer. Свежий браузер от Microsoft обладает целым рядом новых особенностей, среди которых стоит упомянуть расширенные средства безопасности, переработанный интерфейс с поддержкой табов, антифишинговый фильтр, возможность читать RSS-потоки, улучшенный режим предпросмотра печати страниц и невысокую скорость работы.
![]() |
Но веб-работников, конечно, в первую очередь волнует, что же изменилось в поведении браузера, и как теперь обстоят дела с поддержкой веб-стандартов. За интересующей информацией не лишним будет обратиться к блогу разработчиков IE. Что я собственно и сделал. Ниже предлагаю краткое изложение по теме.
Особенности CSS в IE7
На пути к веб-стандартам новый Internet Explorer сделал более 200 шагов, именно столько поведенческих изменений и новых возможностей приобрел браузер. Однако сразу же необходимо отметить, что для совместимости со старыми версиями все эти нововведения (кроме поддержки полупрозрачных PNG) будут доступны только в режиме Strict Mode. А значит те веб-работники, кто не «злоупотреблял» стандартизацией, а в частности, объявлениями типа документа (<!DOCTYPE...>
) могут спать спокойно – в новом проводнике их сайты точно не развалятся, чего нельзя с уверенностью сказать о сайтах, гордо помеченных иконками вроде . Однако, перейдем к сути.
Списки исправленных ошибок
Исправлено большинство недоразумений, упомянутых на сайте PositionIsEverything.net:
- Эффект "Ку-Ку!"
- Проблема с растягивающимся блоком.
- Необычные проценты.
- Ошибка с line-height.
- Хаос с границами.
- Исчезающий фон у списков.
- Исчезающая нижняя часть содержимого плавающего блока.
- Не прокручиваемый контент.
- Дублирующиеся символы.
- Увеличивающаяся ширина блока, содержащего курсивный текст.
- Двойной отступ у плавающих блоков.
- Появляющийся индент.
- 3-х пиксельный скачок у текста.
- Уползающий текст.
- Исчезающая первая буква.
- Еще один баг с растягивающимся блоком .
Среди исправленных багов важно упомянуть также следующие:
- Переполнение (overflow) теперь работает корректно!
- Ошибки парсера: * html, _property и /**/, исправлены.
- Элемент Select теперь дружит с CSS.
- Auto-size для абсолютно позиционированных элементов с
width:auto
(полезно для 3-х колоночной верстки). - Ошибки, относящиеся к относительному позиционированию, исправлены.
- Ошибки, относящиеся к абсолютному позиционированию, исправлены.
- Ошибки в расчете % для ширины/высоты у абсолютно позиционированных элементов исправлены.
<?xml>
-пролог больше не переводит браузер в режим Quirks Mode.- Теперь элемент html действительно независим от элемента body (имеет собственную ширину, высоту и т.д.).
border:1px dotted
больше не отображается как dashed.margin-bottom
баг: неприятности при наведении больше не ожидаются.- Проблемы, связанные с отрицательными отступами, решены.
- Проблемы, связанные с относительным позиционированием и отрицательными отступами, решены.
- Атрибут CLSID тега
<object>
больше не ограничен 128 символами. - Ошибки парсера с
:first-letter
, описанные здесь, исправлены. - Комбинации c селекторами теперь работают должным образом.
:first-line
и:first-letter
теперь работают и в случае отсутствия пробела перед открывающейся фигурной скобкой {.- Псевдоклассы теперь работают как ожидается.
:link
теперь работает и для тега<a>
, ссылающегося на закладку.- Проблемы, связанные с
!important
, решены. - Страница piefecta-rigid.htm с сайта PositionIsEverything.net теперь отображается корректно.
- Решена проблема с пустым пространством в пунктах списка.
- При вычислении размера и местоположения для абсолютно позиционированных элементов теперь всегда берется правильный контейнер. В частности решена проблема, описанная здесь.
- Вложенные блочные элементы теперь признают все предписания в случае переполнения (hidden, scroll и т.д.).
- Теги
<a>
, помещенные внутрь li-элементов, больше не добавляют лишний нижний отступ при наведении. - При обновлении страницы пропорции изображения больше не теряются.
- Индент-парсинг приведен в соответствие с CSS 2.1.
- Исправлены ошибки в парсинге комбинаций class-селекторов, а также комбинаций class-селекторов с id-селекторами.
- ...
Список существующих реализаций, расширенных в соответствии со спецификациями W3C
- Динамический псевдокласс
:hover
теперь применим ко всем элементам, а не только к тегу<a>
. background-attachment: fixed
теперь применим ко всем элементам – таким образом пример Эрика Мейера работает.- Улучшена нейтрализация ошибок элемента
<object>
.
Список новых возможностей
- Добавлена поддержка
min/max-width/height
(также для изображений, чего не было в IE7b2). - Добавлена поддержка прозрачных (transparent) границ.
- Добавлена поддержка fixed-позиционирования.
- Добавлена поддержка мульти-класс селекторов (
.class1.class2
). - Добавлена поддержка псевдокласса
:first-child
. - Добавлены следующие селекторы и правила CSS 2.1:
- Селекторы дочерних элементов:
E > F
- Смежные селекторы-родственники:
E + F
[attr]
[attr="value"]
[attr~="value"]
[attr|="value"]
Селекторы атрибутов:
- Селекторы дочерних элементов:
- Добавлены следующие селекторы и правила CSS 3:
- Общие селекторы-родственники:
E ~ F
[attr^="value"]
[attr$="value"]
[attr*="value"]
Селекторы атрибутов:
- Общие селекторы-родственники:
- Поддержка альфа-канала в PNG-изображениях (не имеет отношение к CSS, но, тем не менее, важная новость для веб-работников).
Из наблюдений по горячим следам
В заключении хотел бы поделиться некоторыми оперативными наблюдениями.
Во-первых, как я уже говорил, все нововведения в CSS для IE7 будут доступны только в режиме Strict Mode. А это значит, для того чтобы ими воспользоваться, необходимо html-страницы снабдить «Doctype-переключателем» – объявлением типа документа, к примеру, <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
. Если же по какой-то причине мы хотим, чтобы эта декларация была видна только IE7 (например, для того чтобы сохранить преимущества Quirks Mode для проводников от Microsoft предыдущих версий), то, похоже, самый простой способ сделать это – воспользоваться условным комментарием. Конструкция вида:
<!--[if IE 7]>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<![endif]-->
спрячет декларацию от остальных браузеров.
Во-вторых, не могу не отметить довольно странный подход, а точнее даже небрежность разработчиков IE в вопросе исправления ошибок парсинга. Ошибок, которые играют не последнюю роль в проблеме совместимости, так как порождают целые методики и отдельные приемы, широко применяемые в кроссбраузерной верстке.
В частности, удивительно, что была исправлена ошибка _property: value
, но почему-то осталось нетронутым и продолжает работать в обоих режимах не менее популярное *property: value
. Как в прочем успешно функционирует и целое семейство идентичность хаков:
@property: value;
!property: value;
+property: value;
…
Не пришлось бы в будущем, по примеру Mozilla, использовать еще и третий Almost Strict режим.
_______