Есть ли список используемых в браузере условных операторов, включая таблицы стилей?

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

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

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

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

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

Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Введение в CSS
Введение в CSS
CSS является неотъемлемой частью трех основных составляющих front-end веб-разработки.
Как выровнять Div по центру?
Как выровнять Div по центру?
Чтобы выровнять элемент <div>по горизонтали и вертикали с помощью CSS, можно использовать комбинацию свойств и значений CSS. Вот несколько методов,...
Навигация по приложениям React: Исчерпывающее руководство по React Router
Навигация по приложениям React: Исчерпывающее руководство по React Router
React Router стала незаменимой библиотекой для создания одностраничных приложений с навигацией в React. В этой статье блога мы подробно рассмотрим...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
CSS: FlexBox
CSS: FlexBox
Ранее разработчики использовали макеты с помощью Position и Float. После появления flexbox сценарий полностью изменился.
8
0
685
4
Перейти к ответу Данный вопрос помечен как решенный

Ответы 4

Ответ принят как подходящий

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

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

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

Чтобы добавить немного, это официально поддерживается MS и обычно считается лучшей практикой для разработчиков в тех случаях, когда вам абсолютно необходимо нацеливаться на IE (по сравнению со всеми уродливыми CSS-хаками, которые веб-разработчики использовали ранее). Вот статья MSDN с полным синтаксисом: msdn.microsoft.com/en-us/library/ms537512.aspx

joelhardi 25.09.2008 22:18

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

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

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

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

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

navigator.appName
navigator.appVersion 

связь

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

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

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

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

Другие вопросы по теме