Каков наилучший способ решить проблему совместимости с IE?

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

Я имею дело с несовместимостью ie, использующей различные конкретные файлы CSS для каждой версии, чтобы отобразить ее правильно?

Есть ли способ лучше?

2 ответа

Решение

Преимущество использования разных CSS-файлов с фильтрами состоит в том, что вы можете написать 100% совместимый CSS, тогда как хаки сделают ваш CSS недействительным.

С другой стороны, преимущество использования CSS-хаков только для одного CSS-файла заключается в эффективности загрузки.

Тем не менее, я предпочитаю фильтры. Использование приведенной ниже парадигмы помогает мне поддерживать организованный CSS для моего браузера, а использование "каскада" вместе с эквивалентной "специфичностью" - это самый простой способ, который я нашел, чтобы справиться с несоответствиями браузера. Не забывайте, что вы также можете включить в эти фильтры javascript, специфичный для IE, чтобы улучшить работу с IE.


<link id="stylesheet1" rel="stylesheet" href="css/style.css" type="text/css" media="all" />
<!--[if IE]>
<link id="stylesheet2" rel="stylesheet" href="css/ie.css" type="text/css" media="all" />
<![endif]--> 
<!--[if lte IE 6]>
<link id="stylesheet3" rel="stylesheet" href="css/ie6.css" type="text/css" media="all" />
<![endif]-->

Еще одна замечательная особенность этой парадигмы фильтрации заключается в том, что вы изолируете свой код, написанный для устаревших браузеров, который однажды устареет. Например, кого-нибудь больше волнует IE 5? Эти файлы ничего не замедляют, потому что они загружаются только по мере необходимости и со временем становятся меньше необходимыми. Я бы предпочел, чтобы так было, а не устаревший код переплетался со стандартом.

Однако как насчет браузеров, отличных от IE, таких как Safari или Firefox? Что ж, попробуйте написать код CSS, который работает одинаково для Chrome / Safari / Firefox, и мне редко требуется какой-то конкретный взлом для одного из них, но для некоторых вещей я использовал браузерные CSS-расширения.

Другой вариант - это выбор браузеров в JavaScript:

http://rafael.adm.br/css_browser_selector/

Наконец, я кратко рассмотрел SO, и они, кажется, не используют фильтры IE. У них есть один CSS-файл, который они ловко разместили на домене без файлов cookie для повышения производительности:

http://sstatic.net/

Различные CSS-файлы, каждый с фильтром IF ie, вероятно, самый чистый способ выделить отдельный IE CSS.

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