Возможно ли иметь код, соответствующий стандартам W3C, когда вам требуется поддержка IE6? W3

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

Ребята, у вас есть какие-нибудь мысли на этот счет?

Вот для чего я иду:

  • Семантический код - ДА
  • Проверочный код - ДА
  • Работает в IE6 - ДА

Давайте не будем спорить по поводу семантики здесь LOL. знак равно

HTML JS CSS

4 ответа

Решение

Да, вы можете иметь полностью совместимый код и хранить бессмысленный IE6 в отдельном файле (обычно):

Просто скройте любой специфический для IE6 код с помощью условных операторов IE. Это предпочтительный способ сделать это, если вы хотите, чтобы ваш CSS все еще проверял. Кроме того, весь корректный HTML должен нормально работать в IE6 с правильным стилем, применяемым через CSS:

<!--[if lte IE 6]>
   <link rel="stylesheet" href="/css/ie6.css" type="text/css" media="screen" />
<![endif]-->

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

На самом деле, поскольку условный комментарий - это просто комментарий HTML, даже этот код по-прежнему действителен.

РЕДАКТИРОВАТЬ:

Единственный способ доказать это - создать пример, но все три возможны с IE6 и соответствующими знаниями в коде.

  1. Семантический код: ДА
  2. Проверочный код: ДА
  3. Работает в IE6: ДА

Фактически, не только IE6 представляет проблему с допустимым кодом, но и IE6 и IE7 (и IE8), но, опять же, только в CSS. Проверяйте ваши основные CSS-файлы, но держите IE6 CSS отдельно от условных.

Редко мне нужно добавить дополнительную разметку в HTML для поддержки IE6 (кроме условных в head). Это просто вопрос понимания блочной модели и соответствующего построения ваших семантических страниц.

Один или два divs не являются злом, если они представляют правильную группировку. Три вложенных divs исправить bug это зло:)

Краткий ответ: да!

По моему опыту, действительная семантическая разметка на самом деле лучше работает с IE6. Объедините это с правильным, корректным и простым CSS, и вы в значительной степени золотые. Конечно, вы столкнетесь с некоторым странным поведением в IE6, особенно для более сложных проектов, как отмечено выше. Тем не менее, большинство из этих ошибок хорошо документированы. С помощью простого, корректного кода выявлять и устранять эти проблемы часто довольно просто.

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

Все еще не можете заставить это работать? Изящно деградировать! Конечно, закругленные углы красивы и все в ярости, но 20% (надеюсь, меньше) ваших пользователей, которые все еще живут в темных веках, вероятно, не будут скучать по ним.

Нужно немного поработать, чтобы заставить код работать в IE6, и есть немного поработать, чтобы сделать код валидным, но это не значит, что это тот же тип работы, или что один из них сделает другой невозможным.

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

Конечно, сделать код в IE6 проще, если вам не нужно одновременно думать о допустимом коде, но это только потому, что нужно учитывать больше факторов, а не потому, что эти факторы сами по себе несовместимы.

Нет, это невозможно для любого умеренно сложного макета.

РЕДАКТИРОВАТЬ: По крайней мере, не без добавления множества уродливых условий.

Другие вопросы по тегам