Подтвердить что ты не робот

Будет ли нацелен на IE8 с условными комментариями?

Когда IE8 будет выпущен, будет ли следующий код работать, чтобы добавить условную таблицу стилей?

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

Я читал противоречивые сообщения о том, работает ли это с бета-версией. Я надеюсь, что кто-то может поделиться своим опытом. Спасибо.

4b9b3361

Ответ 1

Он работал у меня - как в режиме quirks, так и в режиме соответствия стандартам. Однако при переключении в режим совместимости IE8 он не работает.

Ответ 2

Одно замечание:

Он работает, НО, если вы загружаете локальную сеть страницы/сайта (например, Интранет), она будет загружаться в режиме IE7 strong > по умолчанию! (обновление - localhost [*] - это особый случай, который делает. в режиме стандартов)

Это по умолчанию относится к исходному заявлению MSFT о состоянии STANDARDS.

например.

http://127.0.0.1/mysite/mypage.php  <-- IE8 by default (updated!)
http://localhost/mysite/mypage.php  <-- IE8 by default (updated!)
http://machinename/mysite/mypage.php  <-- IE7 by default
http://192.168.100.x/mysite/mypage.php  <-- IE7 by default
http://google.com/  <-- IE8 by default

[*] - Скотт Диккенс [MSFT] отметил в комментарии здесь, в блоге IE, что localhost был особым сценарием в Интранете ( часто используется для создания интернет-сайтов), таким образом, будет отображаться в стандартном режиме по умолчанию.

Чтобы проверить, какой режим в IE8 действительно выполняется, вы можете использовать инструменты разработчика или использовать этот код букмарклета (работает только в IE8):

javascript:
var vMode=document.documentMode;
var rMode='IE5 Quirks Mode';
if(vMode==8){
  rMode='IE8 Standards Mode';
} else if(vMode==7){
  rMode='IE7 Strict Mode';
}
alert('Rendering in: '+rMode);

Ответ 3

Инструменты/Параметры просмотра совместимости

снимите все флажки

Ответ 4

Благодарим вас за помощь. Я обнаружил решение, видимо, проблема заключалась в том, что каждая таблица стилей использует свой собственный атрибут title. После того, как я взял титул из всех, кроме основной таблицы стилей, никаких проблем.

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

В любом случае, не уверен, что это ошибка, или она должна быть такой, но я надеюсь, что Microsoft расследует дальнейшие действия.

Спасибо

Ответ 5

Зачем даже писать отдельную таблицу стилей для IE8?

Если вы уже отлаживали IE7, вы можете заставить IE8 перейти в режим совместимости и, таким образом, отобразить свой код, как если бы IE8 был IE7.

Все, что вам нужно сделать, это поставить ПРАВИЛЬНУЮ НИЖЕ начальную метку. В другом месте и он не будет работать.

И затем, что на полчаса меньше, чем в среднем по проекту, не требуется интенсивной отладки для IE8!

Даже Msn.com делает это - вроде иронично, а??

Недавно написал сообщение в блоге: http://blog.sankhomallik.com/2009/11/16/stop-wasting-time-debugging-on-ie8-when-you-dont-have-to-or-get-ie8-to-behave-like-ie7/

Ответ 6

IE8 делает довольно приятным по сравнению с IE7, у меня есть таблицы стилей для IE6, IE7 и IE8; сначала я думал, что условные комментарии не работают для IE8 после нескольких экспериментов. Я обнаружил, что некоторые правила не применялись IE8 только потому, что мне сначала нужно было поставить родительский или родительский класс, например. У меня был класс вроде

.niceclass {some:properties;more:properties;}

он работал только, если я изменил его на что-то вроде:

.parentclass .niceclass {some:properties;more:properties;} или

#parentselector .niceclass {some:properties;more:properties;}

btw в моем IE8-only css у меня есть только одно правило переопределения, остальное отображается почти как firefox, хотя это не заставляет меня оставлять FF в любом случае!

Ответ 7

Со своей стороны я хотел использовать округленные границы с помощью css. IE8 на Vista этого не поддерживает. И так как графика была такой, что округленные границы также показывали бы хорошую округлую тень, страница выглядела ужасно в IE8.

Я попытался использовать условные комментарии, но безрезультатно, IE8 не оценил бы выражение IE и, таким образом, не включил бы внешнюю таблицу стилей.

Затем я взглянул на то, чтобы поместить его в режим quirks/compatiblity, однако это все еще не сработало, поскольку используемые мной хаки CSS больше не работали для IE8.

Наконец, но я нашел рабочий CSS-хак, который правильно отобразит страницу в режиме совместимости.

* + html #test[id] { color:lime } 

Теперь я не знаю, работает ли это для IE7 или ниже, так что у вас будет как минимум три различные хаки для каждой версии IE, которую вы хотите поддержать, например,

* + html #test,
    html+body #test,
    * html body #test
    { color:lime }

Интересно, что будет для нас следующей регрессией Internet Exploiter.