Каков наилучший способ решить проблему совместимости с 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 для повышения производительности:
Различные CSS-файлы, каждый с фильтром IF ie, вероятно, самый чистый способ выделить отдельный IE CSS.