HTML5 shiv также необходимы для IE9, чтобы поддерживать элементы HTML5

Я использую следующие элементы HTML5 на своих страницах: заголовок, статья, раздел и навигатор. Теперь я установил все вышеперечисленные элементы HTML5 как display: block, и я включаю shiv HTML5 с условным выражением в заголовке:

<!--[if lt IE 9]>
<script src="dist/html5shiv.js"></script>
<![endif]-->

Сайт отлично работает в IE7 и IE8, что указывает на то, что html5shiv действительно делает это волшебство. Однако, когда я тестирую сайт в IE9, ему не хватает стилей для всего содержимого внутри элементов HTML5.

Как только я сменил условный оператор на:

<!--[if IE]>
<script src="dist/html5shiv.js"></script>
<![endif]-->

Элементы html5 и его дети теперь получают правильный стиль. Я дважды проверял мою версию IE, и он говорит, что у меня есть версия IE 9.0.8112.16421.

Я также должен отметить, что сайты построены с помощью PHP и кэшируются с использованием PEAR Cache_Lite. Однако тесты, выполненные на простой статической странице html, дают мне те же результаты.

Любые идеи?

Ответ 1

Наконец-то мне удалось выяснить, в чем проблема. У меня был комментарий в верхней части моего сайта, до тега html doctype. Это, похоже, нарушает способность IE9 распознавать элементы HTML5.

Это то, что у меня было:

<!-- Served From Cache: Wednesday 13th of February 2013 03:02:22 PM -->
<!DOCTYPE html>
<html>
    <head>

Итак, я смог исправить это, переместив комментарий ниже doctype.

Ответ 2

Попробуйте этот код

<!--[if lt IE 9]>  
<script src="http://html5shiv.googlecode.com/svn/trunk/html5.js"></script>  
<![endif]-->