Каков наилучший способ решить проблему совместимости с IE? - PullRequest
1 голос
/ 19 мая 2010

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

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

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

Ответы [ 2 ]

4 голосов
/ 19 мая 2010

Преимущество использования разных CSS-файлов с фильтрами <! - [if IE]> заключается в том, что вы можете написать 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/

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

http://sstatic.net/

2 голосов
/ 19 мая 2010

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...