Итак, разработчики IE7 объявили, что они устраняют ошибку, которая позволяет подсовывать Internet Explorer'у CSSные правила, которые будет видеть только он.

* HTML #SomeElement {
  Height:1%;
}

IE7, как и другие браузеры, теперь это правило тоже будет игнорировать. Никита Вакорин с umade.ru написал про это пост и сделал такой вывод:

Поэтому убирайте этот CSS-хак из ваших CSS файлов.

Я не согласен в корне. Ни в коем случае не убирайте! Смысл этого хака в том, чтобы под ним прописывать те правила, которые предназначены для обхода багов IE5-IE6. Но ведь с выходом IE7 предыдущие версии никуда не денутся. Смею вас уверить. Люди, сидящие на встроенном браузере самой распространенной операционной системы делают это не потому, что он им чем-то очень нравится, а потому что эти люди просто не ищут ничего лучше, им это не интересно просто. И по этой причине никакого взрывообразного перехода пользователей на IE7 не произойдет. Поэтому хак "* HTML" еще несколько лет точно будет вполне актуальным.

А что же сам IE7? А с ним все, надеюсь, будет гораздо лучше. Судя по всему, исправление селекторов - это только начало, а после этого команда IE пофиксит потихоньку и все остальное. Другими словами, они, похоже, присоединяются к нормальной тенденции, когда не несчастные дизайнеры подстраиваются под глюки браузеров, а производители браузеров чинят эти глюки.

В общем, я считаю, что по большому счету ничего для нас не изменится: есть куча разных браузеров, которые, тем не менее, работают более менее одинаково, и тяжелое наследие прошлого - IE5-IE6.

Комментарии: 22

  1. kukutz

    +\1

  2. Boris

    Взрывообразного перехода вероятно и не будет, но процентов 25-35 от общего числа пользователей перейдут ОЧЕНЬ быстро. Так как очень вероятно, что MS выложит IE7 как part of windows update (c IE6 было то же самое) , а за последний год пользователи уже ПРИВЫКЛИ ставить все, что им дают на этом сайте.

  3. Давид Мзареулян

    Вообще, лучше бы им сделать документированный хак, позволяющий однозначно отличить IE7 от всего прочего. Потому как всё равно понадобится:)

  4. Остап Бредю

    Странно, что нет стандартного CSS-фильтра, наподобие фильтра по типам media (screen, speech, page - то есть практически по группам клиентов).

    <link rel="stylesheet" user-agent="IE7"... />

  5. BOLK

    2Давид Мзареулян:

    Для HTML такой хак есть. А вот с CSS сложнее, да.

  6. Иван Сагалаев

    Не надо документированных хаков. Весь смысл стандартов состоит в том, чтобы не было нужды делать все эти вещи. Баги надо чинить, а не документировать. Чем они, слава богу, и занимаются.

  7. Иван Сагалаев

    Я даже больше скажу. Попытки дизайнеров (особенно старой школы) выяснять "как сделать страницу под браузер X", "какие браузеры надо поддерживать" как раз и приводит к тому, что CSS и HTML вместе с ним усложняется настолько, что теряет смысл.

    Обходить несовершенства реализации стандарта надо в корне по-другому (я напишу еще отдельной статьей), а не писать целые альтернативные стили под браузеры, которые в каких-то статистиках начинают превышать 5%. Это тяжело и бесполезно.

    P.S. Извините, больная тема :-)

  8. Никита

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

    Лично я рад, что со <звездочкой> потихоньку начинают расставаться. Да, она помогает, но ее там быть не должно.

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

  9. Иван Сагалаев

    А доказано - это как, где? Есть, что почитать?

    Я могу согласиться, что без хаков можно обходиться, но только при условии, что фичи, которые IE не понимает или плохо понимает, вообще не использовать. Либо компенсировать лишней раскладкой. Но и то, и другое лично меня не устраивает: хочется двигаться вперед, развиваться.

  10. Никита

    Иван, сколько таких фич мешают Вам двигаться вперед, развиваться? Посмотрите сколько уже существует готовых CSS сайтов и CSS методов с примерами о которых раньше даже не задумывались, из-за чего в некоторых случаях стали использовать хаки. Я считаю что на пути развития хаки будут мешать и рано или поздно их придется убрать.

    В конце концов есть специальные комментарии - conditional comments, к использованию которых призывают разработчики IE.

  11. Иван Сагалаев

    Нет, мне мешают не фичи, а неподдержка их в самом распространенном браузере. Их полно. Например, position:fixed, display:table, селектор ">", альфа-канал в PNG и многие другие. Вы говорите - много готовых сайтов. Но ведь они все (ну может за редким исключением) используют хаки.

    Хаки с общей точки зрения - это всего лишь реализация обратной совместимости. И она никогда не бывает красивой по определению. Но без нее никакая инновация не может развиваться, потому что не будет привлекать существующих пользователей. Хаки для отделения текущих версий IE в итоге, конечно, уйдут. Но не раньше, чем через несколько лет, когда пользователи преползут на что-нибудь поновее. Но тогда будут свои хаки для ныне модных браузеров :-).

    Вообще, у меня такое ощущение, что мы говорим о разном слегка... Я называю хаком любое использование технологии слегка не по назначению. Например, float никогда не предназначался для раскладки, но его для нее используют, потому что других средств нет. Это тоже хак.

  12. Никита

    Согласен, мы говорим слегка о разном ;)

  13. [...] В блогосфере на этой неделе гулял устойчивый ветерок хайтека в области веб-технологий и блоггинга. К примеру сразу на нескольких блогах вспыхнула полемика около знаменитого звездочного CSS-хака для IE. Никита Вакорин на мой взгляд “поспешил” с заявлениями на эту новость и рекомендациями убирать этот хак из своих CSS-файлов. Мне лично более импонирует в этом вопросе позиция Ивана Сагалаева, который точно подметил, что с появлением IE 7 старые версии IE ни куда не денутся… Конечно же это личное дело каждого, но… не нужно сбрасывать со счетов IE 5.x и IE 6. Ну и коли уж мы коснулись CSS, то не проходите мимо другой статьи Ивана – “Границы и отступы в потоке“, в которой подробно изложено как работать с margin- и padding-свойствами блоков. [...]

  14. uncle.f

    По поводу вот этого: "Судя по всему, исправление селекторов - это только начало, а после этого команда IE пофиксит потихоньку и все остальное."
    Я бы не был таким оптимистом, когда речь заходит о Microsoft. "Все остальное" - это очень много :-)
    Вот и ссылка по теме:
    http://www.windowsitpro.com/Article/ArticleID/47208/47208.html
    Основная идея которой то, что MS собирается починить самые "досадные" ошибки (что это такое, мы узнаем только после выхода IE7), но вовсе не планирует быть полностью CSS2-compliant.

  15. ganges

    "после этого команда IE пофиксит потихоньку и все остальное"
    Ага, починит, лет через 10.

    Согласен с Вами в том. что сделать "модный" сайт вообще без хаков - практически нереально, учитывая поддержку Mac IE 5.2. Да и вообще, ни для кого не секрет, "ослы" 5.0, 5.5, и 6.0 могут вести себя по разному на одних и тех же граблях.

    Только надо, конечно, не хаки выключать (это неразумно как Вы и описали в своей заметке) а делать все хаки - фильтры - в отдельно импортируемом CSS файле.

  16. Никита

    Разработчики IE7 просят убирать CSS-хаки, так как уже многие сайты ломаются в IE7.

    Что и требовалось доказать :)

    Заметка на webmascon.ru

  17. Иван Сагалаев

    Доказательством как-то не пахнет :-). Отрадно, что IE7 эти хаки будет пропускать, как и все современные браузеры. Но моя основная мысль в статье состоит в том, что текущие версии IE никуда не денутся. Как бы того ни хотелось разработчикам IE (и я их понимаю).

    Касаемо же Webmascon... Не хочу показаться заносчивым, но это, ей богу, не самый авторитетный источник. Лучше, вот, Эрика Мейера почитать: "IE7 and IE7" в качестве теории и "To Hack With It" в качестве демонстрации.

  18. Никита

    Webmascon, это чтоб по-русски можно прочитать ;)

  19. Portnov

    Народ, а ничо не слышно про хак с подчеркиванием (т.е. { _property: value }, который IE понимает как { property: value }, а остальные игнорируют)? т.е. будет это c IE7 срабатывать?

  20. Александр

    Не помню где нашел:

    IE 6 и ниже
    * html {}

    IE 7 только
    *:first-child+html {}

    IE 7 и современные браузеры
    html>body {}

    Только современные браузеры (не IE 7)
    html>/**/body {}

    Первые два точно работают :) т.е. *:first-child+html {} понимают все кроме ie 7

  21. Александр

    СОРРИ
    Первые два точно работают :) т.е. *:first-child+html {} HE понимают все кроме ie 7

  22. Swetlana

    Как интересно читать статью 2005 года, придумывая хаки для IE9, которых потребуется видимо не меньше, чем для IE6 :)

Добавить комментарий