Дрессируем IE

В последнее время появляется все больше и больше скриптов, эмулирующих работу CSS3 правил в IE, и скриптов, создающих элементы и атрибуты HTML5. Я вижу в этом только позитивные моменты:

  • разметка страниц становится более чистой и семантичной
  • отпадает необходимость использовать изображения для теней, закругленных уголков и бордеров
  • inline-валидация форм
  • продвижение веб-стандартов
  • сохранение существующей разметки после того, как использование скриптов будет не нужно

Как вы наверняка знаете, для интернет эксплорера нужно “включить” все новые элементы и атрибуты из HTML5, чтобы работать с ними. Remy Sharp написал скрипт, включающий все элементы HTML5 в IE. Все что нужно, это вызвать скрипт в head‘e, так как IE должен знать о элементе до того, как отрисовать его.

Для эмуляции некоторых CSS3 правил можно использовать CSS3 PIE. На данный момент поддерживаются, либо частично поддерживаются следующие правила:
CSS3 PIE

  • border-radius
  • box-shadow
  • border-image
  • multiple background images
  • linear-gradient как background image
  • rgba

CSS3 PIE использует Behaviors для эмуляции, что накладывает некоторые ограничения и возможные неудобства:

  • Вы должны будете подключать PIE Behavior в каждом правиле, со свойствами CSS3
    (behavior: url(PIE.htc);)
  • У всех элементов, в которых используется PIE должен быть выставлен position:relative
  • Возможны проблемы с производельностью в интерактивных элементах

В общем, в некоторых случаях PIE будет адекватной заменой существующим “костылям”, а в некоторых — нет.

Удачных опытов!

12 thoughts on “Дрессируем IE

  1. Мне очень понравился selectivizr. Использовал его как-раз в связке с HTML5Shim вот на этом проекте stroyeconomika.by (проект еще не в релизе, правятся баги).

    В отличие от решение Дэна Эдвардса, например, он не добавляет новых багов. По крайней мере, я их не заметил.

    • странная штука.
      по описанию все клево, сделал простой пример с одним :first-child, в ie6 – не работает вообще.

        • это просто ложь, господа :)
          если не верите, смотрите http://msdn.microsoft.com/ru-ru/library/cc351024(VS.85).aspx

          А со скриптом я разобрался – все дело было в css. Они обязательно должны подключаться через link. Плюс локально это не работает (Likewise, style sheets loaded using the file: protocol will not work), т.е. только на хостинге или в том же денвере… что не вполне удобно, конечно…

  2. Думаю, если навесить все скрипты которые подтянут IE до современных стандартов он станет тормозом в квадрате ;) Реализовывать такую поддержку особенно в шестерке – сущее зло.

    • IE6 давно пора поддерживать только по конкретной просьбе заказчика и за большие деньги :)

Leave a Reply

Your email address will not be published. Required fields are marked *