Html5shiv не работает в IE8?

Я не могу получить стили, чтобы забрать в IE8 элементы HTML5. Я тратил stackoverflow и Google, никаких предложений, которые я пробовал, работает.

Я начал работу с гораздо более сложной страницы (я конвертирую XHTML-фреймворк в HTML5) и нисколько не беспокоился, но после просмотра нулевых результатов в эмулированном и F12 IE8 стандартах IE режима... здесь простой код Я не могу работать:

<!doctype html>
<html>
    <head>
        <meta http-equiv="X-UA-Compatible" content="IE=edge" />
        <meta charset="UTF-8" />
        <title>Template</title>
        <style type="text/css">
            header {
                display: block;
                border:1px solid red;
            }
        </style>
    </head>
    <body>
        <header>
            HTML5 HEADER
        </header>
        <script src="http://html5shiv.googlecode.com/svn/trunk/html5.js"></script>
    </body>
</html>

Пожалуйста, помогите Оби-Вану, ты моя единственная надежда.

Ответ 1

Переместите элемент HTML5Shivs script в раздел head, до всех остальных элементов style и script.

Ответ 2

Переместите shiv перед объявлениями стиля.

Чтобы повысить производительность в современных браузерах, вы можете использовать условные комментарии для shiv.

<!doctype html>
<html>
    <head>
        <meta http-equiv="X-UA-Compatible" content="IE=edge" />
        <meta charset="UTF-8" />
        <title>Template</title>

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

        <style type="text/css">
            header {
                display: block;
                border:1px solid red;
            }
        </style>
    </head>
    <body>
        <header>
            HTML5 HEADER
        </header>
    </body>
</html>

Ответ 3

У меня была аналогичная проблема, но моя проблема связана с синтаксисом условного комментария IE.

<!doctype html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>HTML5 Shim Test</title>

    <style>
        nav ul { font-weight: bold; }
        /* the links wont be bold in IE8 unless the shim is working */
    </style>

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

</head>
<body>
    <nav>
        <ul>
            <li><a href="#">Link 1</a></li>
            <li><a href="#">Link 2</a></li>
            <li><a href="#">Link 3</a></li>
        </ul>
    </nav>
</body>
</html>

Вы заметили пробел между ] и > в <!--[if lt IE 9] >? Я тоже не... очень долгое время. Удалите пространство, и все отлично работает.

Кроме того, стоит упомянуть, что страница проекта HTML5 Shim говорит, что прокладка должна находиться в <head>, но она может появиться после ваших таблиц стилей:

"Он должен быть включен перед элементом <body> (т.е. в <head>), но не имеет значения, появляется ли оно до или после CSS, но для ради производительности, было бы разумнее включить CSS сначала это script." через https://code.google.com/p/html5shim/