Дрессируем 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 будет адекватной заменой существующим “костылям”, а в некоторых — нет.

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

Эта запись была опубликована в рубрике CSS, HTML. Вы можете следить за комментариями к этой записи.

Комментарии

  1. Zigzag написал:

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

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

    • Curly Brace написал:

      Любопытная штука. Попробую, спасибо

    • Vladimir написал:

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

      • Curly Brace написал:

        Вобще-то в IE6 :first-child работает и без всяких скриптов…

        • Vladimir написал:

          это просто ложь, господа :)
          если не верите, смотрите 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. Cuprum написал:

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

    • Curly Brace написал:

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

  3. MyFreeWeb написал:

    Для меня все проблемы решает http://code.google.com/p/ie7-js/ :)

  4. Shift написал:

    Баги, баги, лаги, тормоза …. Проблемное решение, но уже что-то

Leave a Reply

Your email is never published nor shared. Required fields are marked *

*

You may use these HTML tags and attributes:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>