10

我无法使用 HTML5 元素在 IE8 中获取样式。我搜索了 stackoverflow 和谷歌,没有任何我尝试过的建议。

我从一个更精细的页面开始(我正在将 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>

请帮助欧比旺,你是我唯一的希望。

4

3 回答 3

32

将 HTML5Shiv 的script元素移动到head部分,在所有其他元素之前。stylescript

于 2013-04-09T00:59:29.197 回答
5

将 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>
于 2013-04-09T01:04:23.560 回答
0

我有一个类似的问题,但我的问题与 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 项目页面确实说 shim 需要位于 中<head>,但它可以位于您的样式表之后:

“它必须包含在<body>元素之前(即在 中<head>),但它出现在 CSS 之前还是之后都没有关系 - 但为了性能,先包含 CSS 然后再包含这个脚本会更有意义。” 通过https://code.google.com/p/html5shim/

于 2013-11-26T00:37:52.537 回答