Кодирование для IE и кодирование для стандартов W3C

StackOverflow https://stackoverflow.com/questions/1120626

Вопрос

Еще одна глава из серии «споры между мной и другим старшим разработчиком» :P

Моя позиция заключается в том, что при веб-разработке код браузера должен быть написан в первую очередь в соответствии с веб-стандартами W3C, даже несмотря на то, что Internet Exploder имеет большую долю рынка (где-то между 51% и 79% в зависимости от того, кто занимается отслеживанием). .Мои рассуждения таковы:

  • Стандарты зафиксированы, и все разработчики браузеров стремятся как минимум к 100% безошибочной поддержке всех установленных стандартов.Поэтому код должен быть написан и протестирован для Firefox/Chrome/Safari, которые гораздо ближе к надлежащей поддержке стандартов, чем IE8, а затем в IE следует использовать условные теги для обхода ошибок.Это особенно верно, поскольку вы можете использовать условные теги для обхода ошибок IE, но если вы попытаетесь написать код в обратном порядке, гораздо сложнее написать хаки, чтобы заставить Firefox/Safari/и т. д. правильно отображать сломанный код HTML/CSS. .

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

  • Кодирование чего-то сломанного для поддержки большей доли рынка, а затем «разборка» его для меньшей доли рынка, если у вас есть время, кажется небрежным подходом к работе и предполагает, что вы думаете, что доля рынка в 20% незначительна, что я думаю. очень далеко от истины.

Мой соразработчик утверждает:

  • Разные компании, производящие браузеры, любят идти своим путем и в любом случае не особо заботятся о стандартах, поэтому попытки писать код для стандартов — пустая трата времени.

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

  • Браузер есть браузер есть браузер.Это всего лишь область просмотра для рендеринга текста, и мне не следует так сильно беспокоиться о том, как все выглядит. точно верно.

  • Очень тяжело разрабатывать в Firefox, хотя он все равно предпочитает IE8.

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

Могу ли я получить некоторую информацию по этому аргументу?

Это было полезно?

Решение

Разрабатывайте в соответствии со стандартами W3C и делайте это хорошо в IE.Они не являются взаимоисключающими.

Другие советы

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

Есть ли у вашей аудитории более высокая склонность выбирать конкретный браузер?Имейте в виду, что не все сайты имеют одинаковое распространение браузеров.Технические сайты получают меньше просмотров в IE, чем обычные сайты.

Будьте практичны:Большинство сайтов получают большую часть посещений из IE.В частности, IE 6 и 7.Игнорирование особенностей IE — это игнорирование реальности.Многие пользователи будут жаловаться на то, что ваш сайт не работает, если вы не потратите время на то, чтобы заставить его работать в IE 6 и 7.IE 6 по-прежнему остается популярным браузером, используемым большинством компаний, ориентированных на Microsoft.

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

Суть в том, чтобы реализовать сайт, который работает во всех браузерах IE6 и выше.Если вам нужно корректно выполнить сбой в старых браузерах, сделайте это.Но не игнорируй их.Они существуют, и пользователи не будут использовать сайты, которые не работают.Часто их компании требуют от них не использовать разные браузеры, поэтому предлагать обновить их — не вариант.

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

Основная проблема, которую я видел, - это этот шаблон:

  • Компания браузера 'x' делает браузеры из-за того, что устойчивы и пытаются отображать страницы, которые плохо сформированы.Они также отклоняются от стандартов по пути либо случайно, либо в попытке создать свой новый стандарт.
  • Неопытный веб -разработчик использует браузер «X», чтобы проверить свой дизайн по мере их продвижения, что позволяет недостаткам в их размере оставаться незамеченными.
  • Компания браузера «X» теперь находится в ловушке в положении либо разрыва существующих сайтов, либо поддержает известные дефекты в новых выпусках своего браузера.

Не будьте частью этого цикла.

Я не уверен, о какой версии IE вы на самом деле спорите, но это сообщение в блоге Digg показывает, что более половины пользователей IE6 не используют IE6 по своему выбору.

Религиозные споры по поводу браузеров не изменят того факта, что многие из ваших пользователей могут не иметь никакого контроля над тем, как они просматривают ваш сайт.Таким образом, все сводится к деловому решению, а также к стоимости и стоимости.выгода от обслуживания тех, кто может быть немного отстающим.

Разрабатывайте в соответствии со стандартами W3C и делайте это хорошо в IE.Они не являются взаимоисключающими.

Иногда они есть.В таких случаях разработка в соответствии со стандартами W3C обычно является разумным выбором.Более серьезная проблема, конечно, заключается в разработке нескольких версий IE;установка жесткого нижнего предела на уровне 7, вероятно, является хорошей идеей, но это зависит от конкретного редактора.

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

На самом деле бизнес должен удовлетворять своих пользователей.Идеологии недостаточно.Разрабатывайте в соответствии со стандартами, а затем заставьте их работать в IE.Прокомментируйте код и объясните, где введены хаки.Если вы говорите об IE8, то это не так уж и плохо.Если вам нужна поддержка IE7 или даже 6, то работы у вас будет больше.

Кодируйте код для браузера, который имеет определенную долю рынка и наиболее точно соответствует тесту ACID.Поработайте над другими браузерами и решите, о каких браузерах вам не стоит беспокоиться.

Для меня на данный момент это означает:

Напишите код для Firefox, обойдите его для IE, убедитесь, что он работает одинаково в Chrome и Safari, и игнорируйте все остальное.

В приведенных выше рассуждениях содержится несколько интересных утверждений.Продавцы не заботятся о стандартах.Готовность к использованию в будущем благодаря соблюдению стандартов.Non-IE составляет около 20% доли рынка.Если бы были какие-то эмпирические доказательства за или против этого, это могло бы помочь.

Самое главное, в моих глазах, у вас есть утверждение, что «вы можете использовать условные теги для обхода вокруг ошибок, но если вы попытаетесь кодировать в обратном -Поружен HTML/CSS правильно. " Это утверждение об отсутствии симметрии не является интуитивным для моих глаз, но если истинно является довольно сильным аргументом.

Лично, если бы кто-то действительно сказал «примерно правильно, это нормально» и «не беспокойтесь о…именно», то мне было бы трудно воспринимать эти аргументы всерьез.

Почему разработка в/для Firefox вызывает затруднения?

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

IE поддерживает условные операторы CSS, который позволяет вам настраивать особенности CSS IE, которые работают в большинстве браузеров.

Поэтому я думаю, что лучше всего написать HTML, который выглядит хорошо и работает так, как ожидалось (стандартные схемы), а когда вам приходится делать что-то некрасивое, чтобы заставить его работать в IE, тогда используйте условный CSS.


Разъяснение моего циничного мнения о W3C:Большой.Мяч.Из.Грязь.

Я всегда поручаю своей команде проектировать с учетом Firefox (читай «стандарты W3C») и только позже заполняю странные пробелы, касающиеся IE.Я не могу не согласиться с вашей точкой зрения, потому что это имеет большой смысл.

MS якобы пытается сделать IE более совместимым с давних пор, но до этого еще далеко...тогда как другие браузеры, такие как Firefox и Chrome, могут учиться на ошибках MS.Поскольку значительная часть веб-пользователей по-прежнему использует IE 6, вам всегда придется добавлять специальные условные проверки для удовлетворения этих «недостающих ссылок».

Я не понимаю, как сложно разрабатывать приложения для Firefox, учитывая такие замечательные надстройки, как FireBug и Web Developer.

Его аргументация страдает одним существенным недостатком:На какую версию IE вы ориентируетесь?

Сайт может выглядеть великолепно в IE6 и ужасно отстойно в IE7 и 8.Или отлично выглядеть в IE6 и 7, но ужасно плохо в режиме рендеринга IE8 по умолчанию (более совместимом со стандартами).

Поддержка IE6 падает;Некоторое время назад использование IE7 превысило использование IE6, а IE8 постепенно набирает обороты.

В Интернете проектирование для браузера восьмилетней давности является ошибкой.Сначала создайте дизайн для новых браузеров, а затем добавьте то, что нужно для старых браузеров.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top