IE7 думает, что это IE8? - PullRequest
       30

IE7 думает, что это IE8?

0 голосов
/ 08 ноября 2011

Я пытаюсь использовать условные комментарии, чтобы заставить IE7 вести себя как настоящий браузер.

Но в последние несколько дней IE7 игнорирует условные ссылки, ссылающиеся на него, и отвечает только на условные выражения, ориентированные на IE8.

Мой заголовок имеет:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1    /DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="X-UA-Compatible" content="IE=8" />
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />

...

Условные обозначения:

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

, которые НЕ распознаются ни в IE7, ни в 8Но если это

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

, тогда таблица стилей отображается в IE7 и IE8.

Есть идеи?Я в тупике.

Ответы [ 2 ]

0 голосов
/ 08 ноября 2011

Вы также можете использовать хак CSS для таргетинга IE7 только из основной таблицы стилей:

*:first-child+html { /* Apply IE7-only CSS here */ }
0 голосов
/ 08 ноября 2011

У меня были проблемы с IE8, не читающим таблицу стилей IE, поэтому теперь я предпочитаю добавить класс для IE в мою основную таблицу стилей. В любом случае легче поддерживать код с одной таблицей стилей. Пол Ирриш объясняет это лучше но в основном вы поставили это:

<!--[if IE]> <html class="ie"> <![endif]-->

там, где была ваша условная ссылка на таблицу стилей, а затем в вашем CSS вы добавляете класс ie для каждого нужного вам изменения в IE. Допустим, ваш отступ обычно составляет 6px, но для IE вам нужно, чтобы он был 4px, ваш css для этого div будет выглядеть так:

.someClass {padding: 6px;}
.ie .someClass {padding: 4px;}
...