Итак, разработчики IE7 объявили, что они устраняют ошибку, которая позволяет подсовывать Internet Explorer'у CSSные правила, которые будет видеть только он.
* HTML #SomeElement {
Height:1%;
}
IE7, как и другие браузеры, теперь это правило тоже будет игнорировать. Никита Вакорин с umade.ru написал про это пост и сделал такой вывод:
Поэтому убирайте этот CSS-хак из ваших CSS файлов.
Я не согласен в корне. Ни в коем случае не убирайте! Смысл этого хака в том, чтобы под ним прописывать те правила, которые предназначены для обхода багов IE5-IE6. Но ведь с выходом IE7 предыдущие версии никуда не денутся. Смею вас уверить. Люди, сидящие на встроенном браузере самой распространенной операционной системы делают это не потому, что он им чем-то очень нравится, а потому что эти люди просто не ищут ничего лучше, им это не интересно просто. И по этой причине никакого взрывообразного перехода пользователей на IE7 не произойдет. Поэтому хак "* HTML" еще несколько лет точно будет вполне актуальным.
А что же сам IE7? А с ним все, надеюсь, будет гораздо лучше. Судя по всему, исправление селекторов - это только начало, а после этого команда IE пофиксит потихоньку и все остальное. Другими словами, они, похоже, присоединяются к нормальной тенденции, когда не несчастные дизайнеры подстраиваются под глюки браузеров, а производители браузеров чинят эти глюки.
В общем, я считаю, что по большому счету ничего для нас не изменится: есть куча разных браузеров, которые, тем не менее, работают более менее одинаково, и тяжелое наследие прошлого - IE5-IE6.
Комментарии: 21
kukutz
6.09.05 18:51
+1
Boris
6.09.05 19:45
Взрывообразного перехода вероятно и не будет, но процентов 25-35 от общего числа пользователей перейдут ОЧЕНЬ быстро. Так как очень вероятно, что MS выложит IE7 как part of windows update (c IE6 было то же самое) , а за последний год пользователи уже ПРИВЫКЛИ ставить все, что им дают на этом сайте.
Давид Мзареулян
6.09.05 22:58
Вообще, лучше бы им сделать документированный хак, позволяющий однозначно отличить IE7 от всего прочего. Потому как всё равно понадобится:)
Остап Бредю
6.09.05 23:55
Странно, что нет стандартного CSS-фильтра, наподобие фильтра по типам media (screen, speech, page - то есть практически по группам клиентов).
<link rel="stylesheet" user-agent="IE7"... />BOLK
6.09.05 23:56
2Давид Мзареулян:
Для HTML такой хак есть. А вот с CSS сложнее, да.
Иван Сагалаев
7.09.05 00:04
Не надо документированных хаков. Весь смысл стандартов состоит в том, чтобы не было нужды делать все эти вещи. Баги надо чинить, а не документировать. Чем они, слава богу, и занимаются.
Иван Сагалаев
7.09.05 00:13
Я даже больше скажу. Попытки дизайнеров (особенно старой школы) выяснять "как сделать страницу под браузер X", "какие браузеры надо поддерживать" как раз и приводит к тому, что CSS и HTML вместе с ним усложняется настолько, что теряет смысл.
Обходить несовершенства реализации стандарта надо в корне по-другому (я напишу еще отдельной статьей), а не писать целые альтернативные стили под браузеры, которые в каких-то статистиках начинают превышать 5%. Это тяжело и бесполезно.
P.S. Извините, больная тема :-)
Никита
7.09.05 21:41
По большому счету <звездочку> можно не убирать вообще. Если с парсером седьмой версии браузера все будет в порядке, то этот хак просто-напросто будет игнорироваться.
Лично я рад, что со <звездочкой> потихоньку начинают расставаться. Да, она помогает, но ее там быть не должно.
И самое главное - на сегодняшний день известно и доказано, что можно обходиться вообще без хаков почти в любой ситуации.
Иван Сагалаев
7.09.05 22:02
А доказано - это как, где? Есть, что почитать?
Я могу согласиться, что без хаков можно обходиться, но только при условии, что фичи, которые IE не понимает или плохо понимает, вообще не использовать. Либо компенсировать лишней раскладкой. Но и то, и другое лично меня не устраивает: хочется двигаться вперед, развиваться.
Никита
8.09.05 17:51
Иван, сколько таких фич мешают Вам двигаться вперед, развиваться? Посмотрите сколько уже существует готовых CSS сайтов и CSS методов с примерами о которых раньше даже не задумывались, из-за чего в некоторых случаях стали использовать хаки. Я считаю что на пути развития хаки будут мешать и рано или поздно их придется убрать.
В конце концов есть специальные комментарии - conditional comments, к использованию которых призывают разработчики IE.
Иван Сагалаев
8.09.05 19:22
Нет, мне мешают не фичи, а неподдержка их в самом распространенном браузере. Их полно. Например, position:fixed, display:table, селектор ">", альфа-канал в PNG и многие другие. Вы говорите - много готовых сайтов. Но ведь они все (ну может за редким исключением) используют хаки.
Хаки с общей точки зрения - это всего лишь реализация обратной совместимости. И она никогда не бывает красивой по определению. Но без нее никакая инновация не может развиваться, потому что не будет привлекать существующих пользователей. Хаки для отделения текущих версий IE в итоге, конечно, уйдут. Но не раньше, чем через несколько лет, когда пользователи преползут на что-нибудь поновее. Но тогда будут свои хаки для ныне модных браузеров :-).
Вообще, у меня такое ощущение, что мы говорим о разном слегка... Я называю хаком любое использование технологии слегка не по назначению. Например,
floatникогда не предназначался для раскладки, но его для нее используют, потому что других средств нет. Это тоже хак.Никита
8.09.05 21:12
Согласен, мы говорим слегка о разном ;)
БлогОбзор » Blog Archive » Blog Times, No 8
10.09.05 13:50
[...] В блогосфере на этой неделе гулял устойчивый ветерок хайтека в области веб-технологий и блоггинга. К примеру сразу на нескольких блогах вспыхнула полемика около знаменитого звездочного CSS-хака для IE. Никита Вакорин на мой взгляд “поспешил” с заявлениями на эту новость и рекомендациями убирать этот хак из своих CSS-файлов. Мне лично более импонирует в этом вопросе позиция Ивана Сагалаева, который точно подметил, что с появлением IE 7 старые версии IE ни куда не денутся… Конечно же это личное дело каждого, но… не нужно сбрасывать со счетов IE 5.x и IE 6. Ну и коли уж мы коснулись CSS, то не проходите мимо другой статьи Ивана – “Границы и отступы в потоке“, в которой подробно изложено как работать с margin- и padding-свойствами блоков. [...]
uncle.f
10.09.05 14:57
По поводу вот этого: "Судя по всему, исправление селекторов - это только начало, а после этого команда IE пофиксит потихоньку и все остальное."
Я бы не был таким оптимистом, когда речь заходит о Microsoft. "Все остальное" - это очень много :-)
Вот и ссылка по теме:
http://www.windowsitpro.com/Article/ArticleID/47208/47208.html
Основная идея которой то, что MS собирается починить самые "досадные" ошибки (что это такое, мы узнаем только после выхода IE7), но вовсе не планирует быть полностью CSS2-compliant.
ganges
19.09.05 16:09
"после этого команда IE пофиксит потихоньку и все остальное"
Ага, починит, лет через 10.
Согласен с Вами в том. что сделать "модный" сайт вообще без хаков - практически нереально, учитывая поддержку Mac IE 5.2. Да и вообще, ни для кого не секрет, "ослы" 5.0, 5.5, и 6.0 могут вести себя по разному на одних и тех же граблях.
Только надо, конечно, не хаки выключать (это неразумно как Вы и описали в своей заметке) а делать все хаки - фильтры - в отдельно импортируемом CSS файле.
Никита
3.11.05 20:04
Разработчики IE7 просят убирать CSS-хаки, так как уже многие сайты ломаются в IE7.
Что и требовалось доказать :)
Заметка на webmascon.ru
Иван Сагалаев
3.11.05 21:42
Доказательством как-то не пахнет :-). Отрадно, что IE7 эти хаки будет пропускать, как и все современные браузеры. Но моя основная мысль в статье состоит в том, что текущие версии IE никуда не денутся. Как бы того ни хотелось разработчикам IE (и я их понимаю).
Касаемо же Webmascon... Не хочу показаться заносчивым, но это, ей богу, не самый авторитетный источник. Лучше, вот, Эрика Мейера почитать: "IE7 and IE7" в качестве теории и "To Hack With It" в качестве демонстрации.
Никита
3.11.05 23:21
Webmascon, это чтоб по-русски можно прочитать ;)
Portnov
15.02.06 17:29
Народ, а ничо не слышно про хак с подчеркиванием (т.е. { _property: value }, который IE понимает как { property: value }, а остальные игнорируют)? т.е. будет это c IE7 срабатывать?
Александр
20.08.07 12:14
Не помню где нашел:
IE 6 и ниже
* html {}
IE 7 только
*:first-child+html {}
IE 7 и современные браузеры
html>body {}
Только современные браузеры (не IE 7)
html>/**/body {}
Первые два точно работают :) т.е. *:first-child+html {} понимают все кроме ie 7
Александр
21.08.07 11:21
СОРРИ
Первые два точно работают :) т.е. *:first-child+html {} HE понимают все кроме ie 7