Как программисты борются с ошибками ie6 в наши дни?

Я использую сценарий ie7/8 Дина Эдвардса. Не уверен, что это моя реализация или нет, но иногда я сталкивался с проблемами ie6, которые не были полностью исправлены или требует специальной обработки, что означало, что я вернусь к тому, с чего начал, заботясь об ie6. Итак, мне было интересно, ie7/8 все еще идет или какая-то другая практика/решение была лучше.


person Daniel    schedule 26.01.2009    source источник
comment
упс, я собирался задать вопрос, был ли jquery-порт скрипта Дина Эдвардса, но потом изменил такт - спасибо, что заметили... не уверен, почему Дин-Эдвардс был добавлен, а затем удален...   -  person Daniel    schedule 26.01.2009
comment
@Daniel: Когда имя Дин-Эдвардс станет нарицательным, мы вернем его, а до тех пор с Javascript все будет в порядке.   -  person George Stocker    schedule 26.01.2009
comment
Я не думал, что тегирование работает таким образом. Можно было бы подумать, что дескриптор декана-эдварда будет поощряться, чтобы облегчить поиск в 3451 вопросе javascript. И наоборот, тот, кто ищет ответы на dean-edwards, может извлечь пользу из этого вопроса. Не суетился, просто удостоверился, что знаю, как С.О. работает.   -  person Daniel    schedule 28.01.2009
comment
Декан-Эдвардс, вероятно, был бы в порядке, если бы была предоставлена ​​​​ссылка (в комментариях) о том, кто, черт возьми, декан-Эдвардс?   -  person UnkwnTech    schedule 29.01.2009


Ответы (16)


Обновление: я дополнил свой ответ здесь учебным пособием на моем сайте, которое, вероятно, будет более полезным, чем мой ответ здесь. Ultimate IE6 Cheatsheet: Как исправить более 25 ошибок Internet Explorer 6

Вот как я решаю IE6:

  • Я проверяю и XHTML, и CSS.
  • Я делаю свои проекты простыми, даже сложными.
  • Я не использую хаки, которые делают мой CSS недействительным.
  • Я использую фреймворк/библиотеку JavaScript (мне нравится MooTools, но вы получите много голосов за jQuery, Prototype, YUI, Dojo и многие другие), которые решают большинство моих кросс-браузерных проблем с JavaScript.
  • Я постепенно улучшаю свои страницы, чтобы они сначала работали без JavaScript, а затем добавляли все навороты.
  • Для решения некоторых проблем с двойным полем я использую display:inline;
  • Если мне абсолютно необходимо, я использую отдельную таблицу стилей, хотя я обнаружил, что мне приходится делать это все реже и реже.
  • Я стараюсь избегать прозрачных изображений в своих макетах. Если они мне абсолютно необходимы, я использую PNG8 с альфа-прозрачностью, которую на самом деле поддерживает IE6.
  • Чтобы решить проблему минимальной высоты, я делаю следующее:

Это для IE6, который интерпретирует высоту как минимальную высоту:

.classNameHere {height:300px;}

Это для всего остального:

div>div .classNameHere {min-height:300px; height:auto;}

Между прочим, если вам нужно изолировать IE6 с помощью CSS, это хороший способ сделать это, так как он не поддерживает дочерние селекторы.

person VirtuosiMedia    schedule 26.01.2009
comment
* Селектор html (для IE 6) или селектор html › body (не для IE 6), кажется, охватывает больше возможностей, не полагаясь на определенную структуру. - person eyelidlessness; 17.09.2009

Я стараюсь не поддерживать IE6

person Toby Hede    schedule 28.01.2009

сброс YUI и Сетки YUI позволили мне сохранить рассудок при поддержке IE6.

IE 6 — это браузер «А-класса», что означает, что баги и ошибки имеют приоритет.

person Ryan    schedule 26.01.2009

Я использую:

  • «Reset.css», чтобы минимизировать разницу между вычисляемыми стилями CSS браузера по умолчанию (например, YUI reset.css)
  • условные комментарии, чтобы поместить в область действия дополнительный файл css;) (например, ./ieFix. css)
  • W3C Validator, чтобы определить, вызвана ли разница в рендеринге плохой вложенностью или это просто IE;)
  • если это не удается, jQuery очень помогает;)
person shfx    schedule 27.01.2009
comment
Я не думаю, что английский является вашим родным языком, так что вы, вероятно, узнали неправильно от других, употребляющих слова неправильно, но слово «распределить» — это глагол, который означает «распределять по частям». Слова «много» означают много. - person thursdaysgeek; 28.01.2009

Честно говоря, в последнее время я редко занимаюсь проблемами IE6. Мой дизайн-процесс прост:

  • Сбросить поля/отступы для всего. Я имею в виду все.
  • Проверяйте макет моей страницы каждые несколько минут. Делает одно нажатие на F5.
  • Если какое-либо изменение ломает страницу, я останавливаю все и оцениваю изменение.
  • Если желаемый метод не может быть использован, я изучаю альтернативные методы, за исключением «хаков».
  • Я проверяю разметку и css. И всегда используйте XHTML 1.0 Strict.
  • Сначала я убеждаюсь, что мой сайт работает без Javascript, а затем использую jQuery.

Эти базовые методы избавили меня от необходимости много работать с проблемами IE6 на протяжении многих лет. Единственная проблема, из-за которой я все еще расстраиваюсь, — это поддержка IE6 для PNG24 с прозрачностью, но IEPNGFix позаботится об этом — обычно не нарушая мои макеты.

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

person Sampson    schedule 26.01.2009
comment
На всякий случай, если вы не знали, IE6 поддерживает прозрачные PNG8, но они должны быть либо полностью прозрачными, либо непрозрачными. Все, что между ними, будет просто прозрачным. - person VirtuosiMedia; 26.01.2009
comment
Я имел в виду PNG24, извините. - person Sampson; 26.01.2009

Условные комментарии, терпение и иногда ie7-js.

person dylanfm    schedule 27.01.2009

Я согласен с ответами, которые говорят о процессе, включающем в себя чистый код, условные комментарии, поддержание ie6 в хорошем, но не идеальном состоянии и т. д. и т. д. Но это очень осторожный, мало-помалу процесс, который все еще, в глубине души, занимает довольно много времени, когда на самом деле это все для одного браузера. Я не хочу отмечать любой ответ как ответ, потому что все ответы говорят о существующих методах, с которыми я знаком. Возможно, на мой вопрос ответили «Нет» :) потому что, по сути, я искал структуру, которая означала, что вам даже не нужно было беспокоиться о нюансах ie6, просто кодировать современным способом - я думал, что js ie7/8 будет делать но даже сегодня я понимаю, что минимальная высота не фиксируется!! В любом случае спасибо за ответы - это помогло еще раз подтвердить, что мой подход по-прежнему остается статус-кво, и я использую свое время настолько эффективно, насколько могу.

person Daniel    schedule 28.01.2009
comment
Либо вам НЕОБХОДИМО поддерживать IE6 (ваш проект указан как таковой), либо нет. Вы должны решить. Мои банки обычно решают не поддерживать Opera, и я просто (должен) справиться с ними. Это коммерческое решение. - person Daniel Daranas; 29.01.2009

Недавно я ввел политику в отношении IE6, в основном, пока это не ломает сайт в IE6, не тратьте на это время.

Я не думаю, ИМХО, что IE6 все еще достаточно полезен, чтобы моя компания продолжала тратить деньги на исправление небольших проблем с ним.

Вот краткий пример данных с нескольких сайтов, на которых моя компания отслеживает данные. Это комбинация последних данных (сегодня) и некоторых данных примерно 1 года назад, поэтому процент IE6 выше, чем мы на самом деле получаем сейчас, и даже тогда все, кроме 3% посещений, относятся к 1 из 8 сайтов. включены в данные.

http://unkwndesign.com/browerUsage.png
**Примечание. построен на webkit, но его номера не включены в webkit, просто чтобы показать, как быстро он вырос. Общий процент равен 100,5% из-за округления.

person UnkwnTech    schedule 26.01.2009
comment
Почему у вас отображаются два десятичных знака, если вы округляете до ближайших полпроцента? - person user57368; 26.01.2009
comment
Потому что именно так это сделал Excel, и я не стал это исправлять. - person UnkwnTech; 26.01.2009
comment
Не так много людей используют Chrome (я пользуюсь). Конечно, у вашего сайта должна быть необычная целевая аудитория, чтобы 12,5% посетителей использовали Chrome. - person Tamas Czinege; 29.01.2009
comment
Я тоже, и эти данные представляют 2 ресторана, 1 религиозный объект, 1 сайт дизайна интерьера и 1 школу. - person UnkwnTech; 29.01.2009
comment
Это означает, что, по-видимому, нас, пользователей Chrome, гораздо больше, чем они заставляют нас поверить! Я чую здесь заговор! - person Tamas Czinege; 29.01.2009
comment
О, и я забыл упомянуть 1 компанию веб-дизайна. - person UnkwnTech; 29.01.2009
comment
Массовое большинство хромированных хитов исходит из ресторанов. - person UnkwnTech; 29.01.2009
comment
Статистика Chrome действительно весьма интересна. - person cletus; 15.02.2009
comment
Я бы хотел, чтобы у меня было больше исторических данных, чтобы я мог сравнить приведенную выше статистику с данными до выпуска Chrome, из моих собственных журналов (ничего сложного) кажется, что IE упал на 8%, а FF - на 12%. - person UnkwnTech; 15.02.2009

Я не думаю, что когда-либо существовал стандарт относительно того, какой браузер вы можете или не можете игнорировать. Это зависит от организации или аудитории в случае вашего стартапа. Любой JS, который вы пишете, должен «изящно деградировать», но для того, чтобы убедиться, что это действительно происходит, иногда требуется некоторая хитрость.

person Joe Soul-bringer    schedule 26.01.2009

На самом деле есть только одно «исправление» для проблем IE, которое должно помочь облегчить его самоубийство. Единственный найденный мной способ помочь IE покончить жизнь самоубийством — это просвещать своих посетителей. Это можно сделать, прослушивая браузер, и если IE обнаружен, вы отображаете баннер «Помогите обновить Интернет».

Что-то вроде GMail...

Мы делаем это на ra-ajax и сложены (посетите сайт с любой версией IE)

person Thomas Hansen    schedule 29.01.2009

Сначала создайте для Firefox, опыт элементов дизайна nuke или downgrade говорит вам, что IE6 не может справиться с самого начала, и вы не тратите больше времени, чем гарантирует спецификация клиента.

Опыт работы с TBH — мера № 1 для предотвращения проблем с IE6

person annakata    schedule 29.01.2009

  1. Заставьте его работать в Firefox;
  2. Проверьте, выглядит и работает ли он так же в IE7;
  3. Проверьте, работает ли он в IE6 (потому что этого достаточно).
  4. Если вы не можете сделать макет с помощью простого CSS (без сумасшедшего относительного + абсолютного позиционирования или float:after fixes), тогда просто сделайте это с таблицами;
  5. Поместите DOCTYPE, чтобы заставить браузер перейти в режим соответствия (а не причуды);
  6. Сведите к минимуму проблемы с блочной моделью, сведя к минимуму использование содержащихся границ (или задав невидимые границы другим подобным элементам) и вложенные элементы, чтобы свести к минимуму комбинации отступов/полей/границы, которые просто вызовут у вас огорчение;
  7. Не пытайтесь заставить CSS-меню работать во всех браузерах. Это уже не 2003 год. Просто используйте Javascript (например, jQuery/superfish).
  8. Используйте :hover только для ссылок. При необходимости измените их с помощью display: block.
person cletus    schedule 14.02.2009

  1. Убейте ВСЕ стили по умолчанию перед запуском.
  2. Добавьте к этому сценарий Дина Эдвардса.
  3. Если проблемы сохраняются, сообщите пользователям об обновлении.
  4. Если IE6 жизненно важен, используйте таблицу стилей IE, которая удаляет все, что не работает, и заменяет их менее сложными стилями.
  5. jQuery :hover и т. д. на .hover, input[type=submit] на input.submit и т. д. Иногда помогает и со старыми версиями FF и Opera.
person Macha    schedule 21.02.2009

Вчера решил больше не поддерживать. Существует движение, пытающееся убить IE 6.

Благодаря условным комментариям IE легко показать сообщение только для этих пользователей.

person Georg Schölly    schedule 21.02.2009

Я создаю его для Chrome, затем оптимизирую для Firefox, в большинстве случаев это просто мелочи, затем я перехожу в IE 8, а затем перехожу в IE 7, так как к тому времени я устраню большинство ошибок. После IE 7 я бегло взглянул на Opera и на сегодня закончил. Кого больше волнует IE 6?

Вы жалуетесь производителям Intel, что процессор не подходит к вашему комодору? Есть технологические достижения, и я думаю, что IE 6 должен быть убит, лучший способ сделать это — сказать пользователю, что он должен обновиться, и пусть сайт выглядит как дерьмо, это единственный способ заставить их переключиться. Некоторые в конце концов спросят своих детей, почему интернет не работает, и тогда сын установит все обновления, и мама или папа снова могут быть счастливы.

Мой ответ вкратце: больше никакой оптимизации, как я с этим справляюсь.

person Thomaschaaf    schedule 21.02.2009

Поощряя пользователей переходить на что-то — НИЧЕГО — лучшее.

person i_am_jorf    schedule 17.03.2009