IE10 не применяет стили CSS к элементам заголовка / нижнего колонтитула /nav/main HTML5 вне JSFiddle. HTML5 вызывает причудливый режим?

У меня проблемы с применением IE10 стилей CSS, которые я указал для элементов HTML5 (и их дочерних элементов при нацеливании на дочерний элемент с помощью имени тега элемента HTML5 в селекторе), поэтому я разбил его на более простой пример и собрал простой Пример JSFiddle, чтобы продемонстрировать проблему, но когда я тестировал JSFiddle, IE10 решил применить стили должным образом. Итак, я взял точный исходный код результирующего iframe JSFiddle и скопировал его в файл, размещенный на моем сервере, и, увы, он не смог правильно применить стили еще раз.

JSFiddle's source:

<!DOCTYPE html>
<html>
<head>
  <meta http-equiv="content-type" content="text/html; charset=UTF-8">
  <title> - jsFiddle demo</title>
  <script type='text/javascript' src='/js/lib/dummy.js'></script>
  <link rel="stylesheet" type="text/css" href="/css/result-light.css">
  <style type='text/css'>
    header, nav, main, footer {
        display: block;
        background: gray;
        padding: 10px;
        margin: 1px;
    }
    nav ul {
        list-style: none;
        padding: 0;
        margin: 0;
    }
    nav ul li {
        display: inline-block;
    }
    nav ul li a {
        color: white;
        text-decoration: none;
        padding: 10px;
    }
  </style>
<script type='text/javascript'>//<![CDATA[ 
window.onload=function(){
}//]]>  
</script>
</head>
<body>
  <header>
    <img src="http://placehold.it/300x80&text=Logo" />
</header>
<nav>
    <ul>
        <li><a href="#">Home</a></li>
        <li><a href="#">About</a></li>
        <li><a href="#">Services</a></li>
        <li><a href="#">Contact</a></li>
    </ul>
</nav>
<main>    
    <p>This is filler content inside the <code>&lt;main&gt;</code> element. The <code>&lt;header&gt;</code>, <code>&lt;main&gt;</code> and <code>&lt;footer&gt;</code> should each have a gray background and be displayed as a block.</p>
</main>
<footer>
    <p>Copyright &copy; 2013, All Rights Reserved</p>
</footer>
</body>
</html>

В чем дело с IE10? Это не может быть код, так как он отлично работает в iframe или же iframes обрабатываются так же, как и их родительская страница?

Что заставляет IE10 споткнуться здесь? Может ли это быть что-то, что связано с сервером? Это не имеет особого смысла, но это странно.

Естественно, любые исправления, безусловно, будут оценены.

2 ответа

Решение

Согласно инструментам разработчика, он работает в режиме IE8 на вашем сервере. Попробуйте добавить этот код в свой <head> тег:

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

Вы также можете установить это на своем сервере:

Apache:

<IfModule mod_headers.c>
    Header set X-UA-Compatible "IE=edge"
</IfModule>

Ваш веб-сервер имеет заголовок "X-UA-Compatible", установленный в "IE=8", что переводит IE в режим документа IE8. Вам нужно либо удалить его, либо установить "край". Если у вас нет доступа к настройкам сервера, вы можете попробовать добавить на свою страницу http://modernizr.com/, который позволит вам стилизовать элементы HTML5 в старых IE.

Другие вопросы по тегам