2009-12-03 6 views
3

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

У вас, ребята, есть какие-то мысли для этого?

Это то, что я иду:

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

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

HTML JS CSS

+0

Что вы говорите о разработке? Просто HTML? CSS? Javascript? Потому что это может зависеть. – gonzofish

ответ

11

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

EDIT:

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

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

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

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

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

+0

Отличный пункт. Условные работы отлично работают. Я действительно хочу, чтобы наш код сайта проверял и был также семантическим. Давайте посмотрим, сможем ли мы это сделать! – qodeninja

+0

Имейте в виду, что условные обозначения являются лишь частью решения. Кроме того, с ростом HTML5 и css3 пользовательский интерфейс будет шире распространяться среди браузеров с критикой стандартов и IE6/7. http://dowebsitesneedtobeexperiencedexactlythesameineverybrowser.com - отличный пример того, как грациозно деградировать, и это остроумно! – Jack

0

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

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

+0

Помните, что действительный код и семантически правильный код - это две разные вещи. Когда вам когда-либо приходилось поставлять IE6 с недопустимым кодом, чтобы заставить его работать? –

+0

Уродливые? условные обозначения являются предпочтительным способом поддержки браузеров IE. CSS-хаки - это не только уродливые, но часто недействительные хаки, чтобы заставить IE сотрудничать. –

+0

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

1

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

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

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

4

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

Было моим опытом, что действительная семантическая разметка на самом деле работает лучше с IE6. Объедините это с правильным, допустимым и простым CSS, и вы довольно золотистый. Несомненно, вы обязательно столкнетесь с каким-то странным поведением в IE6, особенно для более сложных проектов, как указано выше. Однако большинство этих ошибок: well documented. С простым, достоверным кодом, выявление и устранение этих проблем часто довольно просто.

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

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