Целебное зелье для IE5+ или IE7.js

    Разбирая код очередного проекта внутри тега head наткнулся на интересный код:

    <!--[if lt IE 9]>
    <script src="http://ie7-js.googlecode.com/svn/version/2.1(beta3)/IE9.js"></script>
    <![endif]-->

    Только одно слово «IE9» меня пустило в замешательство. Первое что пришло мне в голову — это то, что при помощи этого .js кода браузеры под печальным клеймом Internet Explorer можно заставить работать используя свойства многообещающего IE9. Больше всего я ожидал что будут доступны свойства CSS3.0, но не тут-то было!

    Первый гугл запрос меня привел сюда. С первых строк стало понятно что это «аспирин» для верстальщиков. Думаю что сейчас самый раз перестать лить воду и прыгнуть с места в карьер.

    Вкратце, от какой головной боли нас избавляет эта библиотека:
    • min-width(height)
    • PNG прозрачность
    • opacity
    • Селекторы и псевдоклассы:
      — ::after, ::before;
      — :first-child, :last-child;
      — [attr=«value»];
    • .multiple.classes
    • ...

    Просто взгляните и протестируйте демо-страницу, лично у меня в горле пересохло и пришлось ущипнуть себя чтобы убедится что со мной все в порядке и то что я вижу — реально.

    После того, как все эти примеры я протестил в эмуляторе IE начиная с версии 5.5 как будто вдыхать воздух стало легче. Правда тест PNG Alpha прозрачности заставил IE5.5 уйти в нирвану, но это никак не заставило меня пожалеть о том, что я потратил свое ценное время на изучение этой библиотеки.

    Считаю что разработка Dean Edwards'a принесет многим пользу.

    PS: новичкам не советую использовать эту штуку, если вы не понимаете откуда и когда берутся эти баги и как их решить при помощи своих ручек. Просто я на 100% уверен, что не на всех проектах будет получаться использовать эту библиотеку… Каким-то клиентам на этот момент будет ровно, а других это не будет устраивать.

    IE7.js project home page
    Demo
    Поделиться публикацией
    Комментарии 73
      –1
      Полезная штука! :)

      Сам использовать не пробовал?
        0
        еще не успел, но обязательно буду )
          +6
          Использую уже давно. На крупных проектах иногда начинает тормозить IE6/IE7. В целом пользы больше чем недостатков. Время — деньги.
            0
            использовали но нашли в старой версии ( годичной давности ) ошибку которая не давала спокойно жить ей и microsoft.ajax вместе под шестеркой, пришлось отказаться на тот момент
            0
            Спасибо за приятную новость, как раз с этим сейчас бороться начал.
              +6
              Вот из-за таких вот отличных таблеток ИЕ6 все еще жив…
                +1
                К сожалению ты не совсем прав.
                Он жив так как очень много народу все еще находится в каменном веке, а такие таблетки изобретают люди кому приходится прогибаться под этот временной изъян «не продвинутых юзеров»
                  +4
                  Как сказал классик: «Не стоит прогибаться....» Но не могу однозначно ответить на Ваш комментарий, правы по-своему все, и те кто делает костыли и те кто поддерживает «непродвинутых юзеров»…
                    0
                    Жаль не от верстальщика зависит будет ли поддержка старья.
                      –2
                      Макаревич уже стал членом пантеона классиков?
                        +5
                        Да пора бы уже =)
                        0
                        Все просто — если у меня через сайт что-то продается и покупатель пришел и увидел страшидло вместо супер-магазина из-за моей принципиальности — я напрямую теряю бабло…
                    +9
                    IE 6 будет жив, пока будет Windows XP
                      –15
                      Windows XP будет вечно. Это наше всё.
                        +2
                        Давай не будем, windows 7 получилась очень даже хорошей.
                          +3
                          Но она не подойдет для очень стареньких машин.
                            –4
                            Пойдет она нормально, если все поотключать, будет нормально работат на старых компах
                              +1
                              Мы видимо разную степень старости рассматриваем.

                              У меня сохранился еще первый PC, его активно используют родители для различных задач. Так вот я туда даже Win XP не могу поместить из-за размера веника.
                                0
                                Мы кстати отошли как-то от темы.
                                  +4
                                  ХР не умрёт долго, и то насколько хорош/плох Win7 не имеет никакого значения, ХР тоже теперь считают хорошим, однако раньше SP1 на него почти никто не перешёл, а основная масса и вовсе созрела только к выпуску SP2.
                                    +2
                                    XP не умрет, пока не умрет Zver DVD :)
                                  0
                                  да Вы правы наверно, что разную степень старости рассматриваем ))
                                  0
                                  Ага, ага…
                                  Ну есть у меня ноут, 1.3 проц, 256 оперативки…
                                  И как я буду эту бандуру там юзать?
                                    0
                                    Добейте оперативки до 512 (модули памяти нынче дешевы) и думаю пойдет без проблем, если отключить аэро.

                                    По крайней мере у меня есть компьютер, который был куплен лет 8 назад, там 512 мб оперативки, процессор 2 ггц пентиум 4, 32 бита одно ядро никаких там гипертредингов :)
                                    На нем в7 летает с выключенным аэро
                                    • НЛО прилетело и опубликовало эту надпись здесь
                                        +1
                                        у друга на древнем ноуте с Селероном 1.7 и 512Мб оперативки бегает быстрее чем XP.
                                  +1
                                  WinXP после Vista/7 это как Win98 после выхода WinXP. Не понимаю я кому сейчас нужно это старое и дырявое чудо.
                                  Старые машины говорите? Мне это не очень понятно, потому как средненький (не игровой конечно) ПК сейчас можно собрать за 6к рублей (AX2, 1-2Гб DDR2). По-моему такую сумму потянет любой.
                                    0
                                    eee pc 701 4g. стоит 7ка и прекрасно живёт (:
                                    банально отключается всё ненужное и аэро.
                                    0
                                    А ещё есть питон к примеру) Который с win 7 не очень дружит. Только вирт машина может помочь, с которой тоже некогда маятся.
                                  –2
                                  шестёрка жива из за того, что виста получилась не очень удачной.
                                    0
                                    Давайте начистоту — просто не получилась -_-
                                      0
                                      А я на ней уже 2 года и доволен. Что я делаю не так? :)
                                  –2
                                  Я о таком лекартсве и не знал. Спасибо. Буду использовать.
                                    –2
                                    Спасибо! Очень радует, что есть некое подобие панацеи от болезней IE.
                                      +15
                                      Довольно древняя библиотека, начиналась с нескольких фиксов селекторов. Странно, что для многих она тут новинкой стала.
                                        +3
                                        да, про эту либу не единожды писали на хабре. тесты красивые, но проблемы начинаются при смешивании разных фич вместе.
                                        +1
                                        У меня этот скрипт намертво вешал IE6…
                                          0
                                          Скорее всего конфликт с другим скриптом.
                                          –4
                                          На главную! Срочно переносите в коллективный блог!
                                            +2
                                            Первый же тест: FAIL


                                            Кроме того, как я понимаю, эта штука никогда не заработает при динамическом изменении классов.
                                              +1
                                              поговорил с начальством, привел доводы: amazon, youtube, google, vkontakte (это прям зацепило)
                                              договорились: обеспечить работоспособность (т.е. чтобы можно было 404 от главной отличить), передавать точное оформление не требуется.

                                              а скрипты нередко убивают браузер — неработающий сайт намного хуже чем отсутствие пнг прозрачности или селекторов.
                                                0
                                                *ie6, ie7 (т.к. по мне это те же яйца)
                                                  0
                                                  Я думаю что твои доводы верны для больших и средних проектов, так как там целью является максимальная эффективность кода, но для проектов сложности ниже среднего, это может оказаться хорошим ускорителем для разработки.

                                                  Так же плюсом этой либы является упрощенный CSS, то есть не надо будет исхитряться всевозможными хаками и костылями, типа свойства zoom:1;, префиксов, таких как _height:100%;, *position:absolute;, которые выдают ошибки при валидации CSS кода.
                                                    0
                                                    как я понял речь идет о студии?
                                                    значит верстаете в день 1-2 сайта, потому-что сайты не дорогие, значит дизайнеры у вас чаще всего делают тяжелые макеты со всякими прозрачностями, тенюшками и прочим заманиловом: анимациями, эффектами и кучей другого js
                                                    с таким подходом легко нарваться на конфликт кода, к тому же заказчик не знает что вы ему в итоге отдаете сжатую пружину, которая может выстрелить в любой момент потому-что верстка некроссбраузерная, js может дать течь и повесить браузер, это я не беру в расчет что на таких сайтах чаще всего куча флешек. Правда на небольших проектах об этом не думают — я сделаю, а дальше хоть потоп, да.
                                                    прошу прощения, если мои догадки не верны.
                                                    p.s. сабж это тоже костыль
                                                  0
                                                  Пользовал одно время, самый главный недостаток — некоторые фиксы отрабатывают только на onload, и потому при ресайзе макет может «поехать». Тормозов особо не заметил (хотя макет был не особо сложный).
                                                    0
                                                    Поправьте пожалуйста: ::afterб
                                                      0
                                                      done!
                                                      Спасибо за поправку )
                                                      0
                                                      Спасибо за таблетку =) К большим проектам, действительно, не подключишь. Но на маленьких времени сэкономит порядочно.
                                                        +6
                                                        Я лично для себя решил, что время, когда можно неподдерживать IE6 и ниже уже пришло. Месяцев так 5-6 назад.
                                                          –3
                                                          то есть уже можно наконец поддерживать? **
                                                          0
                                                          Хорошая новость. При необходимости обязательно использую.
                                                          Но всё таки придерживаюсь мнения «как можно меньше всяких фиксов и кряков».
                                                          Давайте стараться изначально делать такие проекты, которые будут рады любым браузерам без js и других собратьев :)
                                                            0
                                                            В избранное. Однозначно.
                                                              0
                                                              Пошерстил тесты. Рано порадовался, не всё так радужно, как казалось на первый вгляд. Но в некоторых вещах, безусловно, помогает.

                                                              <!--[if lt IE 9]>
                                                              	<script type="text/javascript">alert('Используйте другой браузер');</script>
                                                              <![endif]-->


                                                              Ненавижу IE >,,,<
                                                              0
                                                              я бы добавил то, что вы видимо посчитали несущественным

                                                              IE7.js
                                                              Upgrade MSIE5.5-6 to be compatible with MSIE7.

                                                              IE8.js
                                                              Upgrade MSIE5.5-7 to be compatible with MSIE8.

                                                              IE9.js
                                                              Upgrade MSIE5.5-8 to be compatible with modern browsers.

                                                              т.о. можно заключить что эта библиотека также призвана переводить ослов в «режим совместимости» с одной из версий.
                                                                0
                                                                Тестировал достаточно давно, сейчас, может быть изменилось, но были сплошные глюк на глюке и тормоз на тормозе. В-целом — да не нужна такая огромная библиотека грамотному верстальщику. Я вообще не помню, когда юзал хаки помимо belatedPNG и zoom:1 для ie6. Для ie7 и выше вообще никогда хаков не писал — тут просто верстать надо заранее так, чтобы их не надо было писать
                                                                  +1
                                                                  Я уже год ее использую, думал все знают :)
                                                                  А вообще подобных затычек очень много.
                                                                    0
                                                                    Этакий кастрированный Имхонет.
                                                                      0
                                                                      Уже не первый раз это упомниается, последний раз это было в этом посте
                                                                        0
                                                                        Кстати, в своей книге Джон Рейсиг не раз хвалит Эдвардса не только оригинальные решения, но и за то как это ему удается сделать. Спасибо автору статьи, сейчас копаюсь в коде
                                                                          0
                                                                          На мой взгляд великовато всё таки 40 кб.
                                                                            +1
                                                                            Использовал предыдущую версию этого скрипта ie8.js Нашел там забавный глюк, приводящий к непредсказуемым результатам отображения всех стилей. Проявляется если в комментариях css-файла обнаруживается мягкий или твердый знак «ь» или «ъ», после которого до закрытия комментария присутсвует менее 5 других символов.

                                                                            Например, вот такой коммент приведет к ошибке:
                                                                            /* блок, который видит пользователь */
                                                                            а вот так уже нормально:
                                                                            /* блок, который видит пользователь ======*/
                                                                              0
                                                                              Я даже боюсь спрашивать как вы это обнаружили %)
                                                                                +1
                                                                                Все просто, по-порядку отключал скрипты стили и смотрел как исчезнет ошибка. Обнаружил баг в css, удалял оттуда весь код и смотрел результат. Тут главное пережить разрыв мозга, когда пустой css (только с комментариями) приводил к ошибке :) Ну а далее остается только поиграться с комментариями и найти причину в нем.
                                                                                  0
                                                                                  Мне бы наверное не хватило терпения добавлять по одному символу в комментарий и смотреть что из этого получится :)
                                                                                0
                                                                                Это если я не ошибаюсь тот баг который описан вот тут cssing.org.ua/2006/12/23/ie-css-russian-comments-bug/
                                                                                (тогда вроде ещё не было IE7 по этому там написано что баг только в IE6 и ниже, как я понял из ваших слов)
                                                                                  0
                                                                                  Не возьмусь сказать тот ли этот баг. Проблема не с русским комментарием, а именно с «ь» и «ъ». Тот же русский комментарий как у них в примере:
                                                                                  /*Русский комментарий*/
                                                                                  ошибки не вызывает.

                                                                                  По поводу воспроизводимости точно не помню, кажется наблюдалось и в ИЕ6, и в ИЕ7…
                                                                                0
                                                                                И я сперва обрадовался натолкнувшись на эту библиотеку. Прикрутил её к работающему сайту, на котором изначально забил на ie6 (и под ним естественно «всё плавало»). Уже обрадовался, что под ie6 сайт будет хорошо смотреться, но смотрелось почти всё также убого… Мне не помоголо.
                                                                                  0
                                                                                  Не пользуюсь этим скриптом из-за одного его недостатка:
                                                                                  png-background
                                                                                  В MSIE6 изображение .png в фоне растягивается до размеров внешнего блока

                                                                                    0
                                                                                    Спасибо, очень полезная статья
                                                                                      –1
                                                                                      Испытал на реальной вёрстке. Результат неудовлетворителен. С IE7.js страница в IE6 выглядит гораздо хуже, чем без него: слетает практически всё позиционирование — абсолютное, поплавковое… IE8.js в IE7 вызывает падение вкладки.

                                                                                      Правда, я смотрел в IETester 0.4.10. Любопытно, может, это из-за этого так, а в настоящих браузерах всё отлично?
                                                                                        0
                                                                                        как вы уже догадались, то использовать это зелье надо с самого начала разработки макетов, а не потом, когда сначала нагородили и говорите что ничего не работает.
                                                                                          0
                                                                                          Что значит «нагородил»? Не имею такой привычки. Свёрстано по стандартам и нормально отображается везде, включая IE8. Предполагается, что эта библиотека должна приводить нормальную вёрстку к должному виду в старых браузерах, разве нет? А если сразу нужно верстать под IE6, то я не вижу от неё пользы.
                                                                                            0
                                                                                            …Интересно, между прочим, что IE8 в режиме IE7 проходит только примерно половину элементарных тестов для IE8.js

                                                                                            Либо с библиотекой что-то сильно не так, либо проблема действительно в том, что я её пробую не с настоящим IE7. Но уж точно не в том, что я что-то «нагородил».

                                                                                        Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

                                                                                        Самое читаемое