Есть ли список условий использования браузера, включая таблицы стилей? - PullRequest
5 голосов
/ 05 сентября 2008

Я видел людей, делающих подобные вещи в своем HTML:

<!--[if IE]>
  <link rel="stylesheet" href="ie.css" type="text/css" />
<![endif]-->

Работает ли это во всех современных браузерах, и есть ли список типов браузеров, которые будут работать с таким оператором if?

Редактировать

Спасибо Росс . Интересно узнать о gt, lt, gte и & lte .

Ответы [ 4 ]

10 голосов
/ 05 сентября 2008

Это работает во всех браузерах, потому что все, кроме IE, видит <!--IGNORED COMMENT-->. Только IE читает комментарий, если он содержит условное предложение. Взгляните на эту статью

Вы также можете указать, какая версия IE. Например:

<!--[if IE 8]>
<link rel="stylesheet type="text/css" href="ie8.css" />
<![endif]-->
1 голос
/ 25 сентября 2008

Условные комментарии предназначены исключительно для IE (версия 5 и более поздние). Официальная документация Microsoft здесь . Если вы собираетесь использовать их, лучшая стратегия состоит в том, чтобы условно включить внешние таблицы стилей или файлы javascript после ваших обычных включений. Это означает, что в IE ваш специфичный для IE код переопределит все остальное. В любом другом браузере код будет обрабатываться как комментарии и игнорироваться парсером.

1 голос
/ 05 сентября 2008

Если вы можете использовать Javascript, есть несколько вариантов:

navigator.appName
navigator.appVersion 

ссылка

Или что-то более надежное, используя библиотеку, такую ​​как jQuery .

Наконец, вы можете использовать объект BrowserDetect из QuirksMode.

Получив имя и версию браузера, вы можете вставить HTML-код для ссылки на таблицу стилей или добавить другие теги.

1 голос
/ 05 сентября 2008

В дополнение к ответу Росса, вы можете нацелить движок рендеринга Internet Explorer только с условными комментариями; нет аналогичной конструкции для других браузеров. Например, вы не можете писать условные комментарии, ориентированные на Firefox, но игнорируемые Internet Explorer.

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

Другим способом нацеливания на разные браузеры является использование специфических для браузера хаков. Это особенно неприятно, потому что они обычно полагаются на ошибки в браузере, и ошибки могут быть исправлены!

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

...