Возможно ли иметь код, совместимый со стандартами W3C, когда вам нужно поддерживать IE6?w3

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

  •  12-09-2019
  •  | 
  •  

Вопрос

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

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

Это то, к чему я стремлюсь:

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

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

HTML JS CSS

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

Решение

Да, вы можете иметь полностью совместимый код и сохранить cruft для 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, если вам не нужно одновременно думать о допустимом коде, но это просто потому, что нужно учитывать больше факторов, а не потому, что факторы несовместимы сами по себе.

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

Редактировать:По крайней мере, не без добавления множества уродливых условий.

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