Евгений Федоренко — веб-разработки, фирменные стили и графический дизайн.
Судя по всему — вы используете старый броузер. Доступ к содержимому этого сайта можно получить любым броузером, но я всё же рекомендую воспользоваться поддерживающим стандарты броузером.

Фактор IE

Вольный перевод заметки “The IE Factor” в блоге Douglas Bowman.

Я ассоциирую это с водительским опытом. Когда я часто езжу в определенное место, то с каждым разом всё лучше узнаю ведущую туда дорогу. Я узнаю лучшие улицы, ведущие в автостраду, каждый выход с дороги. Я знаю интересные и скучные участки. Что наиболее важно, я начинаю осознавать модели движения и могу предугадать участки заторов, которые меня задержат. Неважно, по какой дороге я еду, но, как правило, на одном участке поездки я сбрасываю скорость. Некоторые дороги неизбежны, и задержка на них должна быть учтена при расчете общего времени поездки.

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

Без сомнений, наибольшая проблема, с которой я встречаюсь каждый раз, это прения с браузером Microsoft Internet Explorer. Этот дьявол играет не по правилам. Он часто не следует нормам и в его действиях отсутствует общая логика. Он может удвоить отступы без видимой причины. Рамки исчезают, отступ в 62 пикселя магически превращается в 143 пикселя. Он выравнивает влево, когда другие браузеры выравнивают вправо. Я решил называть этот феномен «фактором IE». (Это близко к разработке DHTML четыре или пять лет назад, и уже известно, куда это приведет.)

Работая над окончательными эскизами проекта на прошлой неделе, я завяз в зыбучем песке. Дизайн был окончен давным-давно. Груда CSS была создана за праздники. Mozilla, Firebird, Safari и Opera прекрасно выводят дизайн, хотя и иногда с небольшими отличиями. Но дизайн всё ещё имел значительные ошибки в IE (в версиях и для Windows, и для Mac). «Окей, без проблем — я должен потратить час или около того на исправление ошибок в IE.» Этот час перешел в два полных дня. Дни заполнились почесыванием головы, разборкой и отделением объявлений блоков от их свойств. Решение одной проблемы порождало другую. Создание заплатки для IE крушило другие браузеры. Наладки, которые должны работать, не производили никакого эффекта, побуждая меня попробовать вещи, которые вообще не имеют смысла. И, на мою удачу, IE для Windows и для Mac имеют абсолютно разные ошибки.

К счастью, IE для Mac имеет предсказуемый набор ошибок с известными обходными путями. Но, как я говорил выше, IE для Windows не поддается логике вообще. Это делает сложным поиск ошибок. Я не задерживаюсь на ошибках боксовой модели в версии 5. Их можно исправить. Это индивидуальная отличительная черта IE 5.0, 5.5 и 6.0 (в разных комбинациях), которая сводит с ума авторов CSS.

Временами я подумывал о том, чтобы написать каждое правило в моем каскадном стиле используя потомственные селекторы, отфильтровать IE для Windows вообще и выдавать ему такую же страницу без стилей, как и Netscape 4. Но, конечно же, IE владеет слишком большой долей рынка, чтобы оставить каждого его пользователя без оформления. Мой клиент не может и не хочет соглашаться с таким способом решения проблемы. Так что я должен идти на компромисс каждой ошибке. Если я не смогу найти приемлемое решение и заставить IE повиноваться, придется выключить в нем некоторые возможности или детали оформления. Красивый эффект при наведении на эти иконки? Извини, IE, ты его не получишь. Красивая маленькая рамка снизу этого блока, которую ВСЕ ДРУГИЕ БРАУЗЕРЫ выводят правильно и без конвульсий? Извини, IE, ты и её тоже не получишь. Ты слишком хрупкий для маленькой рамки. Что меня убивает, так это лишняя разметка, которую иногда приходится добавлять, чтобы IE правильно вывел критические части дизайна.

Большинство проблем связаны с неполной поддержкой CSS в Internet Explorer. Я потратил две дополнительные недели, чтобы разобраться, почему IE допускает грубые ошибки в макете Wired News. Я должен был знать, что столкнусь с трудностями в моем проекте на прошлой неделе. Но два дня потерянного времени сильно сбили меня. Я был более чем уверен, что смогу легко и просто исправить все, что IE мне подсунет. Глупый индюк. Сейчас я подсчитал, что фактор IE увеличивает на 10% время и стоимость для каждого проекта, искажая оценку проекта, если он не учтен.

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

Война браузеров, по общему мнению, окончена. Сейчас вы воображаем мир. Все взаимодействуют друг с другом. Мы надеемся жить в эру, не требующую изменения кода и создания отдельного дизайна для каждого браузера. Мы уже близки, но, думаю, пока еще мы этого не достигли.

29.01.04 23:59

Комментарии

Опечатка в слове "вольный" - мягкий знак потерялся. :)

Posted by: kost at 02.02.04 12:38

Святые слова! Самая большая трудность css-дизайна - его адаптация под дьяволоподобный IE. Ненавижу!!!

Posted by: yukki pospel at 02.02.04 14:25

> kost
Спасибо! На самом видном месте, блин :-)

Posted by: evgeny at 02.02.04 17:46

Что-то меня смущает такой наезд на IE в свете CSS. У меня все почему-то наоборот. Или не тот релиз IE стоит? Одним словом - не понял...

Posted by: РезиновыйЗапаЛ at 12.02.04 19:41

> РезиновыйЗапаЛ
У IE нет релиза, который нормально отображал бы CSS. Возможно, вы просто не совсем верно его используете.

Posted by: evgeny at 12.02.04 21:56
Приятного просмотра!

Приятного просмотра!

По темам:

Технические детали

RSS 1.0
RSS 2.0

Работает на Movable Type 2.64

Реклама