На сайті microsoft вони стверджують, що достатньо простого доктрипу. Але навіть документ, такий короткий, як він переходить у режим IE7:
<!DOCTYPE html>
<html>
<head>
<title></title>
</head>
<body>
</body>
</html>
На сайті microsoft вони стверджують, що достатньо простого доктрипу. Але навіть документ, такий короткий, як він переходить у режим IE7:
<!DOCTYPE html>
<html>
<head>
<title></title>
</head>
<body>
</body>
</html>
Відповіді:
Internet Explorer робить припущення, що більшість веб-сторінок були написані для націлювання на більш ранні версії IE, і розглядає вчення, метатеги та HTML, щоб визначити найкращий режим сумісності (іноді неправильно). Навіть з доктрипом HTML5 IE все одно переведе ваш веб-сайт у режим сумісності, якщо це веб-сайт інтрамережі.
Щоб ваш веб-сайт завжди використовував останній стандартний режим, ви можете переконатися, що Display intranet sites in Compatibly
він вимкнено Однак це потрібно робити на кожній машині, локальній для веб-сервера (інструкції наведено нижче).
Крім того, і ще краще, ви можете використовувати X-UA-Compatible
заголовок, щоб вимкнути це з сервера. Важливо зазначити, що використання метатега не вийде!
<!-- Doesn't always work! -->
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
Протягом усього MSDN зазначається, що використання заголовка хоста або метатега повинно змінювати навіть інтранет-сайти. У статті Розуміння режимів сумісності в Internet Explorer 8 йдеться про наступне.
Велика кількість внутрішніх веб-сайтів для бізнесу оптимізовано під Internet Explorer 7, тому цей виняток за замовчуванням зберігає таку сумісність. ... Знову ж, якщо мета-тег або заголовка http використовується для встановлення документа сумісності, він замінить ці налаштування.
Однак на практиці це не вийде, використання головного заголовка - єдиний варіант, який працює. У розділі коментарів статті також показані численні приклади цього точного питання.
Використання метатега також має ряд інших проблем, таких як ігнорування тегу, якщо він не знаходиться безпосередньо під <head>
тегом або якщо перед ним занадто багато даних (4k). Це також може призвести до повторного перегляду документа в деяких версіях IE, що сповільнить візуалізацію. Детальніше про ці проблеми ви можете прочитати у статті MSDN Best Practice: Наведіть свою голову в порядок .
Додавання X-UA-сумісного заголовка
Якщо ви використовуєте .NET і IIS, ви можете додати це до web.config
, ви також можете це зробити програмно:
<system.webServer>
<httpProtocol>
<customHeaders>
<add name="X-UA-Compatible" value="IE=edge" />
</customHeaders>
</httpProtocol>
</system.webServer>
Якщо ви не використовуєте IIS, це легко зробити будь-якою мовою. Наприклад, ось як це зробити в PHP:
header('X-UA-Compatible: IE=edge');
Поки X-UA-Compatible
заголовок присутній з doctype HTML5, сайт завжди працюватиме в останньому режимі стандартів.
Вимкнення перегляду сумісності
Можливо, все ще буде корисно вимкнути Погляд сумісності. Для цього зніміть прапорець Display all intranet sites in compatibility view
у налаштуваннях перегляду сумісності.
Це можна зробити, натиснувши, Altщоб отримати меню.
Редагувати Ця відповідь також стосується IE9.
alt
щоб відкрити панель інструментів, це під інструментами -> параметри подання співзвучності
Це працює для мене ..
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
X-UA-Compatible
метатег, але він все ще не запускає режим документа IEN10 Standard як сторінка за замовчуванням, я виявив, що якщо метатег розташований нижче тегів сценарію або просто Занадто далеко від вершини <head>
дерева DOM IE10 плаче і встановлює режим документа на стандарти IE8. Отже, тримайте IE=edge
мета-тег закритим <title>
тегом. Не завжди просте виправлення сайтів Wordpress, коли це не важко закодовано у файлі шаблону заголовка. Не впевнений, чи цікавить IE11, де знаходиться метатег, але сподіваюся, що це комусь стане корисним.
Спробуйте додати наступний тег до голови
<meta http-equiv="X-UA-Compatible" content="IE=11,IE=10,IE=9,IE=8" />
IE=Edge
замість цього
Метатег нічого не робить для сайтів інтранет, і моєю проблемою було надання IE10 в режимі сумісності IE10. Що вирішило проблему, я отримав відповідь @ Jeow далі та використав це значення у заголовку http, додавши наступне до web.config
розділу IIS:
<system.webServer>
<httpProtocol>
<customHeaders>
<clear />
<!-- <add name="X-UA-Compatible" value="IE=edge" /> not good enough -->
<add name="X-UA-Compatible" value="IE=11,IE=10,IE=9,IE=8" />
</customHeaders>
</httpProtocol>
</system.webServer>
Для цілей IE сайти інтрамережі включають веб-сайти, націлені на загальнодоступні, які не перенаправлені на зовнішнє середовище - наприклад, працівник Stackoverflow, який працює в офісі, мабуть, побачить stackoverflow.com в режимі сумісності.
Це прекрасно працювало для мене, коли я робив наступне:
На http://msdn.microsoft.com/en-us/library/gg699338(v=vs.85).aspx
Використовували точний приклад, який вони надають у першому полі (додали відсутні </html>
внизу), відкрили його в IE10 і стандарти були вимушені, я думаю, вам може знадобитися фактичний вміст у html для нього, щоб примусити стандарти не впевнені, хоча.
Я б запропонував замінити порожній код фактичним вмістом (чимось простим) і подивитися, що він робить.