Как стать автором
Обновить

Анти-IE

Время на прочтение4 мин
Количество просмотров4.3K
Я думаю, эти строки ударят по сердцу каждого, кто пробовал когда-либо заниматься версткой, и знает, что такое «кроссбраузерность». Для тех, кто знаком с темой меньше, представлена следующая часть текста.

Доля Internet Explorer на рынке браузеров составляет порядка 80%, притом еще год назад она была на уровне 90%. Это — самый популярный браузер. Почему? Он самый удобный? Большинство тех, кто когда-либо использовал другие браузеры, так не считают. Он самый безопасный? Информационные IT-агентства просто кишат сообщениями об «очередной дыре в IE». Это факт, с которым согласится даже самый упорный. Он функциональный? По функциональности переплюнуть Opera сможет только Firefox с плагинами. Тогда почему? Да все потому же — он по умолчанию включен в ОС Windows и подогреваемый на остальных дровишках Microsoft занимает лидирующее положение на рынке. Большинство пользователей просто не представляют альтернативы, Internet Explorer — это и есть интернет, другого не надо. Ну ладно, лирику в сторону — статья не об этом.

Пользуются и пользуются, в чем тут проблема? Мешают кому-то? Не смейтесь пожалуйста: «Да! Мешаете!». А именно, сильно усложняете жизнь разработчикам сайтов, в том числе JavaScript/AJAX разработчикам и верстальщикам.

Дело в том, что IE не только ужасно неудобный, самый небезопасный, медленный, нефункциональный браузер, но он еще и не поддерживает стандарты. В интересной форме об этом можно прочитать тут. Для всех браузеров пишется один и тот же HTML/CSS код, и все, по логике, должны отображать и выполнять его одинаковым унифицированным образом, чтобы не было неразберихи. Для этого существует организация «Консорциум W3C», которая как раз тем и занимается — стандартизацией технологий, описанием того, где что и как должно себя вести. Но вот незадача, эти стандарты как минимум пытаются поддерживать все популярные браузеры: Firefox, Opera, Konqueror, Safari, но ни IE. Не IE, доля которого — 80%! Что получаем в итоге? На примере верстки. Нам надо добиться единообразного отображения xHTML/CSS кода в браузерах. Это не так сложно сделать, т.к. если верстка отображается правильно в Firefox, то с 95%-ой вероятностью, она будет так же отображаться и в Opera. В IE — все к чертям едет. Исправляем в IE — ломается в остальных браузерах. Так вот кроссбраузерностью фактически и называется умение делать верстку такой, чтобы она единообразно отображалась во всех адекватных браузерах и в IE одновременно.

Для того чтобы хоть чуть-чуть расслабить эту головную боль, собрано много способов, с помощью которых можно писать своего рода «два кода» для браузеров (это условные комментарии — узаконенная особенность самого IE, знаки подчеркивания и комментарии в стилях, «* html», и прочее). Что характерно, эти дыры меняются от версии к версии — одни закрываются, другие появляются, и таким образом можно написать код под разные версии IE. Но все это представляет большую головную боль для разработчиков. И бывают ситуации, когда до 1/2 времени затраченного на верстку, ушли на обеспечение «совместимости» верстки. Были и совсем шоковые ситуации, когда при сдачи сайта заказчику, у него не отображалась интересное JavaScript-меню. Как оказалось, у него был IE 5.0, убеждения не помогали и прежде чем добиться результатов, пришлось затратить уйму времени.

Чтобы не быть голословным, приведу несколько самых неприятных для меня фактов:
  • До 7-й версии не поддерживаются свойста min-height, min-width
    Своё исключительное понимание параметров padding, margin (http://htmlbook.ru/content/?id=92)
    Неверный подсчет процентов при абсолютном позиционировании
    Неверное понимание параметра «overflow»
    Неверное понимание дочерне-родительской логики вложенности тегов при относительном позиционировании
    Список можно продолжить — http://www.gtalbot.org/BrowserBugsSection/MSIE6Bugs/ (насчитано 88 в IE6 и 83 в IE7 несоответствий стандартам)


    Этот список действительно очень большой, и написал здесь только то, что пришло на ум, если проследовать по ссылкам, то можно найти десятки и сотни других проблем: отличная объектная модель (это приводит к тому, что почти все AJAX-библиотеки имеют два кода: для IE и для браузеров, адекватно воспринимающих DOM), другой метод AJAX передачи данных («window.XMLHttpRequest» во всех браузерах и «window.ActiveXObject» в IE) и прочие проблемы с ним, незнание тега «embed» (и замена его своим «object»), и наконец отсутствие поддержки полупрозрачности в PNG графике. Фактически, материалы можно найти на любом форуме хоть как-либо связанным с Front-end разработкой.

    Ссылки по теме:
    • http://www.gtalbot.org/BrowserBugsSection/
      http://cssing.org.ua/2005/11/11/ie-magic/
      http://www.positioniseverything.net/ie-primer.html
      http://htmlcoder.visions.ru/JavaScript/?30


      Хоть большинству читателей, я думаю, все эти факты давно известны, и я совершенно не говорю ничего нового, но в качестве вводной части в проблему я решил дать этот ликбез. Все это сильно усложняет жизнь разработчикам, и порою заставляет делать ровно двойную работу, и потому, что браузер IE не поддерживает стандарты. О своём отношении к такой политике Microsoft в весьма патетичной форме я высказывался тут. И с этим надо что-то делать. Как минимум — очень хочется. Сейчас доля этого браузера начинает падать, но неизвестно как процесс будет развиваться дальше, и у меня искреннее желание форсировать его, направляя в то русло, куда он идет сейчас — сделать свой вклад в уменьшение доли IE на рынке браузеров.

      Главная проблема заключается в том, что, простите за тавтологию, проблемы разработчиков не волнуют пользователей. А в большинстве случаев, они просто не в курсе этих проблем. Моя мысль стоит в том, чтобы в ясной и понятной форме донести эти проблемы: в форме манифеста, централизованной пропаганды, вирусной передачи, организации «поддержки» этому движению. Посвятить этому сайт, чтобы было куда сослаться для аргументации совета об использовании альтернативного браузера. Как показывает практика, люди относятся весьма сочувствующе, если доходчиво объяснить проблему. Даже, далекие от Web. В первую очередь, затронуть тех, кто в состоянии делать выбор сам, во-вторую — делать его за других (администраторы, extended-юзеры), в-третьих — основная масса пользователей. Привычка использовать хорошие браузеры и без того неплохо работает по сарафанному радио, и будет еще лучше, если диапазон вещания расширится. Фактов и материалов против IE очень много, но нет организованности, чтобы это имело результат: надо собрать все в кучу, и завернуть в подарочную обертку. По факту же, это получается партизанская война на стороне Google. Я обращаюсь с вопросом, может ли эта идея получить деятельную отдачу?

      UPD: Желающим присоединиться, можно писать мне личку, чтобы совместо подумать над организацией и воплощением этой идеи.
Теги:
Хабы:
+73
Комментарии502

Публикации

Изменить настройки темы

Истории

Ближайшие события

PG Bootcamp 2024
Дата16 апреля
Время09:30 – 21:00
Место
МинскОнлайн
EvaConf 2024
Дата16 апреля
Время11:00 – 16:00
Место
МоскваОнлайн
Weekend Offer в AliExpress
Дата20 – 21 апреля
Время10:00 – 20:00
Место
Онлайн