8-я версия IE, вышедшая в 2009 г., ввела ряд возможностей, доступных в Firefox уже по меньшей мере четыре года (с Fx1.5) и в Opera шесть лет (с O7).
Ликвидированы баги с позиционированием background-image и сделано возможным значение background-position: fixed.
Стало доступно значение inherit у свойств word-spacing, text-decoration, border-collapse, rect, vertical-align, overflow, margin, top, right, bottom, left, list-style-type. Сами-то они работали ещё в 6-ке (за тем исключением, что в 6-ке для абсолютно позиционированных элементов нельзя одновременно задать свойства top, left, right, bottom).
У свойства visibility стало доступно значение collapse.
У свойства list-style-type стали также доступны значения armenian, decimal-leading-zero, georgian, и, что более важно, lower-greek, lower-latin, upper-latin. Нет, кириллической нумерации нет - ну, так её и в стандарте нет, она планируется только в
CSS Lists and Counters Module Level 3 Можно пока юзать грузинскую нумерацию, так сказать, в знак пренебрежения к русскому империализму и культурному шовинизму (хотя такие изыски не в моём духе, я предпочитаю всё-таки реализовывать родную нумерацию, как
тут):
- …;
- …;
- …;
- …;
- ….
Заработали табличные свойства border-spacing, caption-side и empty-cells. Свойство border-collapse теперь отменяет атрибут cellspacing.
Заработало свойство обрамления outline с подсвойствами outline-color, outline-style, outline-width (аутлайн рисуется снаружи бордера и не участвует в боксовой модели).
Синтаксис значения rect(), используемого в свойстве clip, приведён к стандартному (ранее значения нужно было разделять пробелами, а не запятой, как полагается).
Счётчики! Заработала группа свойств counter-increment и counter-reset, а к ним - и функция counter().
Заработали
имена цветов из SVG.
Преодолены ограничения правила @import: ранее не работала поддержка типа носителя и число импортируемых таблиц стилей ограничивалось 35.
Псевдокласс :active теперь применим не только к гиперссылкам; хотя вообще-то он традиционно и применяется только для них. Заработали псевдоклассы :focus и :lang (у последнего в Webkit до 2008 г. был баг).
Стало доступно довольно экзотическое значение hidden у border-style.
Нормально заработало свойство z-index (ранее у него была своя, убогая, реализация). Кстати, в Firefox до 3-й версии плохо поддерживались отрицательные значения, но это уже мелочь.
Кроме того, 8-я версия совершила несколько передовых шагов.
У свойства white-space стали доступны значения inherit, pre-line (в Firefox это было достигнуто только в версии 3.5, в Opera - в версии 9.5) и pre-wrap.
Свойство font-weight. До 8-й версии IE, как и Opera до сих пор,
отображал значение 600 жирнее, чем 700. Притом, что Firefox и уэбкиты не способны отображать значения, отличные от нормального и полужирного, даже при наличии шрифтов Light или Heavy/Black.
Свойство quotes. До версии 1.5 Firefox не поддерживал вложенные кавычки, но это пустяк по сравнению с тем, что Webkit вообще не поддерживает это свойство поныне!
Заработали псевдоэлементы :before и :after, и у них - свойство content и функция attr() (с той оговоркой, что она ещё до 9-й версии не реагировала на изменение атрибута). В Firefox до версии 3.5 была реализация в соответствии с CSS 2.0, указывавшей игнорировать для генерируемого содержания свойства position и float, списочные и табличные свойства, и ограничивавшей применение свойства display (самое важное из ограничений - невозможность сгенерировать у инлайнового элемента блочное содержание). В Webkit к генерируемому контенту не применяются свойства переноса и анимации из CSS3.
В 8-й версии было введено замечательное CSS3-свойство box-sizing, позволяющее возвращать для отдельных случаев старую боксовую модель IE. Замечательно в нём то, что можно, например, задать блоку одновременно ширину 100 % от контейнера и паддинги - - и он при этом в контейнер уместится! В стандартной боксовой модели для такого трюка приходится вводить лишний контейнер… Для уэбкитов требуется указывать свойство -webkit-box-sizing, а для Firefox - -moz-box-sizing. Последний любезно предлагает ещё одно его нестандартное значение (padding-box), но, увы, реализация стандарта не свободна от багов, включая очень серьёзный и старый: иешная боксовая модель в Firefox не работает с min-height/max-height! Это до сих пор мешает сделать изящную реализацию «прилипающего к низу» футера.
Ещё ряд нововведений 8-ки не поддерживаются Firefox - стили печати page-break-inside, orphans и widows, правило @page и селекторы для него (:first, :left, :right) - хотя за это я его не упрекаю, как уже отмечал. Печать - зло, спасаем леса.
У Дина Эдвардса есть библиотека и для доведения старых браузеров до этой версии -
IE8.js. Впрочем, я уже, кажется, упоминал, что у меня испытание этой библиотеки что-то не заладилось. И вообще, я бы полагался безо всяких костылей на то, что у клиента не менее, чем IE8, если он сам себе не враг. Ведь его можно поставить на WinXP, в отличие от IE9.
P. S. Я в печали: у давней подруги день рождения, мне следовало бы быть скорее там, нежели здесь, но сложилось не так. Вообще, такое впечатление, что моё место в жизни, во-первых, непристойно удалено от меня, во-вторых, занято какими-то совсем другими людьми. Возвращаясь к конкретной ситуации, пожалуюсь ещё, что собиралась приехать мать, но не может выбраться из своей глуши из-за гололёда. Хотя это оборотная сторона благословенной оттепели, да продлятся её дни до самой весны. Только бы мать себе ничего за это время ещё не сломала, она способная в этом плане. …Кстати: знаете, кто спасает меня здесь, в городе? Лошадки! Они, прошу прощения, гадят туда, где не посыпано песком, что даёт примерно тот же эффект и уже не раз реально спасало меня от падений. Парадокс, но у них-то там в деревне как раз никаких лошадок нету.