Поддержка старых версий IE — головная боль для разработчиков сайтов. В большинстве случаев вы не сможете избежать этого из-за требований проекта или из-за того, что ваш клиент все еще использует старую версию Internet Explorer.
Каждая версия IE ведет себя несколько иначе, чем другие. Первое, что нам нужно, это определить отдельные таблицы стилей для разных версий браузеров IE, чтобы точно указать на проблему в конкретной версии.
Допустим, CSS-свойство, которое вы определили для некоторого элемента, не работает должным образом в IE, но отлично работает в других браузерах, таких как Firefox или Chrome. Для начала вы можете определить общую таблицу стилей, а потом добавить частную, которая будет работать только для IE браузера, как в примере:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>IE Only Style Sheet</title>
<link rel="stylesheet" type="text/css" href="css/default.css">
<!--[if IE]>
<link rel="stylesheet" type="text/css" href="css/ie.css">
<![endif]-->
</head>
<body>
<h1>Определяем таблицу стилей для IE</h1>
<p>Если вы откроете эту страницу в IE, результат будет другим.</p>
</body>
</html>
Открывающие и закрывающие теги условных таблиц стилей представляют собой обычные HTML-комментарии. Между скобками в HTML-комментариях помещаются условные операторы, которые имеют следующее значение.
- Значение «IF» и «IE» сработают для выбранного браузера;
!
означает «не», поэтому !IE означает «не IE»;gt
означает «больше, чем»;gte
означает «больше или равно»;lt
означает «меньше чем»;lte
означает «меньше или равно».
Таблицы стилей только для IE
Условные операторы являются наиболее распространенным способом создания таблиц стилей только для различных версий IE. Вот подробный синтаксис для использования.
Таблицы для всех версий IE
<!--[if IE]>
<link rel="stylesheet" type="text/css" href="css/ie-only.css">
<![endif]-->
Таблицы для всех браузеров кроме IE
<!--[if !IE]>
<link rel="stylesheet" type="text/css" href="css/all-except-ie.css">
<![endif]-->
Таблицы только для IE8
<!--[if IE 8]>
<link rel="stylesheet" type="text/css" href="css/ie8.css">
<![endif]-->
Таблицы только для IE8 и ниже
<!--[if lt IE 9]>
<link rel="stylesheet" type="text/css" href="css/ie8-and-lower.css">
<![endif]-->
<!--[if lte IE 8]>
<link rel="stylesheet" type="text/css" href="css/ie8-and-lower.css">
<![endif]-->
Таблицы только для IE8 и выше
<!--[if gt IE 7]>
<link rel="stylesheet" type="text/css" href="css/ie8-and-higher.css">
<![endif]-->
<!--[if gte IE 8]>
<link rel="stylesheet" type="text/css" href="css/ie8-and-higher.css">
<![endif]-->
Точно так же вы можете определить таблицу стилей для других версий Internet Explorer.