Да, вы можете иметь полностью совместимый код и хранить бессмысленный 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 и соответствующими знаниями в коде.
- Семантический код: ДА
- Проверочный код: ДА
- Работает в IE6: ДА
Фактически, не только IE6 представляет проблему с допустимым кодом, но и IE6 и IE7 (и IE8), но, опять же, только в CSS. Проверьте ваши основные CSS-файлы, но держите CSS IE6 отдельно с помощью условных выражений.
Редко нужно добавлять дополнительную разметку в HTML для поддержки IE6 (кроме условных в head
). Это просто вопрос понимания блочной модели и соответствующего построения ваших семантических страниц.
Один или два divs
не являются злом, если они представляют надлежащую группировку. Три вложенных divs
для исправления bug
это зло:)