Как заставить Internet Explorer отображать в стандартном режиме, а не в причудах? - PullRequest
73 голосов
/ 21 марта 2011

Я кодирую интерфейс, который хорошо работает в стандартном режиме IE7 и стандартном режиме IE8.

Когда я запускаю Internet Explorer и загружаю страницу, IE7 и IE8 сразу переходят в режим Quirks.Как заставить IE7 и IE8 всегда загружать страницу в стандартном режиме?

У меня нет специальных метатегов до сих пор.

Спасибо за помощь

Редактировать: Мой тип документа и голова выглядит следующим образом:

<!DOCTYPE html> 
<html lang="de"> 
<head> 
    <title>...</title> 
    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
    <meta charset="utf-8" />
    <script src="js/html5.js"></script> 

    (...)
</head>

Ответы [ 6 ]

86 голосов
/ 23 ноября 2012

Это способ быть абсолютно определенным:

<!doctype html> <!-- html5 -->
<html lang="en"> <!-- lang="xx" is allowed, but NO xmlns="http://www.w3.org/1999/xhtml", lang:xml="", and so on -->
<head>
<meta http-equiv="x-ua-compatible" content="IE=Edge"/> 
<!-- as the **very** first line just after head-->
..
</head>

Причина:
Всякий раз, когда IE встречает что-либо , что конфликтует, он возвращается к «режиму стандартов IE 7», игнорируя x-ua-compatible.

(я знаю, что это ответ на очень старый вопрос, но я сам боролся с этим, и приведенная выше схема являетсяправильный ответ. Он работает всегда и везде)

33 голосов
/ 21 марта 2011

К сожалению, они хотят, чтобы мы использовали тег, чтобы их браузер знал, что делать. Посмотрите на эту документацию, она говорит нам использовать:

<meta http-equiv="X-UA-Compatible" content="IE=edge" >

и так и должно быть.

11 голосов
/ 14 сентября 2012
  1. Использование html5 doctype в начале страницы.

    <!DOCTYPE html>

  2. Принудительное использование IE в режиме отображения последней версии

    <meta http-equiv="X-UA-Compatible" content="IE=edge">

  3. Если ваш целевой браузер - ie8, проверьте совместимые настройки в IE8

I blogэто в деталях

10 голосов
/ 21 марта 2011

Добавление правильного объявления типа документа и обхода пролога XML должно быть достаточно, чтобы избежать режима причуд .

9 голосов
/ 23 июня 2013

Я знаю, что этот вопрос задавался более 2 лет назад, но никто еще не упомянул об этом.

Лучший способ - использовать заголовок http

Добавление мета-тега в заголовок не всегда работает, потому что IE мог определить режим до его чтения. Лучший способ убедиться, что IE всегда использует стандартный режим, - это использовать пользовательский заголовок http.

Заголовок:

name: X-UA-Compatible  
value: IE=edge

Например, в приложении .NET вы можете поместить это в файл web.config.

<system.webServer>
    <httpProtocol>
      <customHeaders>
        <add name="X-UA-Compatible" value="IE=edge" />
      </customHeaders>
    </httpProtocol>
</system.webServer>
2 голосов
/ 22 марта 2011

Возможно, что HTML5 Doctype вызывает у вас проблемы с этими старыми браузерами.Это также может быть связано с чем-то необычным, связанным с HTML5.

Вы можете попробовать переключиться на один из типов документов XHTML и соответственно изменить разметку, хотя бы временно.Это может позволить вам сузить проблему.

Ваш проект ломается, когда эти IE переходят в режим причуд?Если ваш CSS вызывает странное отображение, возможно, стоит поработать над CSS, чтобы сайт выглядел одинаково, даже когда браузеры переключают режимы.

...