Есть ли список условий использования браузера, включая таблицы стилей?
-
09-06-2019 - |
Вопрос
Я видел, как люди делали подобные вещи в своем HTML:
<!--[if IE]>
<link rel="stylesheet" href="ie.css" type="text/css" />
<![endif]-->
Работает ли это во всех современных браузерах и существует ли список типов браузеров, которые будут работать с таким оператором if?
Редактировать
Спасибо Росс.Интересно узнать о гт, лт, гте и лте.
Решение
Это работает во всех браузерах, потому что все, кроме IE, видит <!--IGNORED COMMENT-->
.Только IE читает комментарий, если он содержит условное предложение.Посмотри на Эта статья
Вы также можете указать, какая версия IE.Например:
<!--[if IE 8]>
<link rel="stylesheet type="text/css" href="ie8.css" />
<![endif]-->
Другие советы
Если вы можете использовать Javascript, есть несколько вариантов:
navigator.appName
navigator.appVersion
Или что-то более надежное, используя такую библиотеку, как jQuery.
Наконец, вы можете использовать Браузердетект объект из QuirksMode.
Получив имя и версию браузера, вы можете вставить HTML для ссылки на таблицу стилей или включить другие теги.
В дополнение к ответу Росса вы можете использовать только условные комментарии для механизма рендеринга Internet Explorer;для других браузеров подобной конструкции нет.Например, вы не можете писать условные комментарии, предназначенные для Firefox, но игнорируемые Internet Explorer.
Способ достижения того же эффекта, что и в приведенном выше примере, — это прослушивание строки пользовательского агента.Затем я предоставляю подходящий CSS-файл для этого браузера.Это не идеально, потому что иногда люди меняют строку своего пользовательского агента для совместимости.
Другой способ настроить таргетинг на разные браузеры — использовать хаки, специфичные для браузера.Это особенно неприятно, потому что обычно они основаны на ошибках в браузере, а ошибки обязательно исправляются!
На мой взгляд, анализ пользовательских агентов — лучшее универсальное решение.
Условные комментарии предназначены исключительно для IE (версия 5 и новее).Официальная документация Microsoft: здесь.Если вы собираетесь их использовать, лучшая стратегия — условно включать внешние таблицы стилей или файлы JavaScript после обычного включения.Это означает, что в IE ваш код, специфичный для IE, будет переопределять все остальное.В любом другом браузере код будет рассматриваться как комментарий и игнорироваться парсером.