Я видел, как люди делали подобные вещи в своем HTML:
<!--[if IE]>
<link rel = "stylesheet" href = "ie.css" type = "text/css" />
<![endif]-->
Работает ли это во всех современных браузерах, и есть ли список типов браузеров, которые будут работать с таким выражением if?
Редактировать
Спасибо Росс. Интересно узнать про gt, lt, gte, & lte.






Это работает во всех браузерах, потому что все, кроме IE, видит <!--IGNORED COMMENT-->. Только IE читает комментарий, если он содержит условное предложение. Взгляните на Эта статья
Вы также можете указать, какая версия IE. Например:
<!--[if IE 8]>
<link rel = "stylesheet type = "text/css" href = "ie8.css" />
<![endif]-->
В дополнение к ответу Росса вы можете настроить таргетинг на механизм рендеринга Internet Explorer только с условными комментариями; для других браузеров аналогичной конструкции нет. Например, вы не можете писать условные комментарии, предназначенные для Firefox, но игнорируемые Internet Explorer.
Способ, которым я достигаю того же эффекта, что и ваш пример выше, - это обнюхивать строку пользовательского агента. Затем я предоставляю подходящий файл CSS для этого браузера. Это не идеально, потому что иногда люди меняют строку своего пользовательского агента для совместимости.
Другой способ настроить таргетинг на разные браузеры - это использовать специальные хаки для браузеров. Это особенно неприятно, потому что обычно они связаны с ошибками в браузере, и ошибки могут быть исправлены!
На мой взгляд, лучшим универсальным решением является сниффинг пользовательских агентов.
Если вы можете использовать Javascript, есть несколько вариантов:
navigator.appName
navigator.appVersion
Или что-то более надежное, используя такую библиотеку, как jQuery.
Наконец, вы можете использовать объект BrowserDetect из QuirksMode.
Когда у вас есть имя и версия браузера, вы можете вставить HTML-код для ссылки на таблицу стилей или включить другие теги.
Условные комментарии предназначены исключительно для IE (версии 5 и новее). Официальная документация Microsoft - здесь. Если вы собираетесь их использовать, лучшая стратегия - это условно включить внешние таблицы стилей или файлы javascript после обычного включения. Это означает, что в IE ваш код, специфичный для IE, переопределит все остальное. В любом другом браузере код будет рассматриваться как комментарий и игнорироваться анализатором.
Чтобы добавить немного, это официально поддерживается MS и обычно считается лучшей практикой для разработчиков в тех случаях, когда вам абсолютно необходимо нацеливаться на IE (по сравнению со всеми уродливыми CSS-хаками, которые веб-разработчики использовали ранее). Вот статья MSDN с полным синтаксисом: msdn.microsoft.com/en-us/library/ms537512.aspx